我定义了内存区域来存储传入的数据,但是这些区域没有初始化,因为我通过指针(指针表示开始/结束)来定义它们,所以当我试图复制数据(写入)到它时,系统会抛出一个分段错误。注意:我已经检查了我的地址,它指向一个未使用的内存区域。我已经尝试预先填充内存,在链接器脚本中定义内存区域,但是没有任何解决方法可以避免出现硬错误。编辑:我在一个嵌入式系统中工作,我知道指针指向无效内存(未使用),所以我想实现的事情是在使用之前验证这样的内存区域或解决故障。
cdmah0mi1#
仅仅确保内存未被使用是不够的。[1]内存管理系统需要知道内存正在被使用。这通常是通过使用malloc或calloc请求内存来完成的(但是还有其他特定于系统的获取内存的方法)。这些函数提供了一个指针,指向在标记为已分配后未使用的内存。标记为已分配可确保将来的分配不会使用该内存(除非在此期间已释放)。它确保操作系统在使用该内存时不会抛出segfault。1.对我来说,这甚至不可能。如果是的话,它肯定比简单地使用malloc/calloc更复杂。
malloc
calloc
1条答案
按热度按时间cdmah0mi1#
仅仅确保内存未被使用是不够的。[1]内存管理系统需要知道内存正在被使用。这通常是通过使用
malloc
或calloc
请求内存来完成的(但是还有其他特定于系统的获取内存的方法)。这些函数提供了一个指针,指向在标记为已分配后未使用的内存。标记为已分配可确保将来的分配不会使用该内存(除非在此期间已释放)。它确保操作系统在使用该内存时不会抛出segfault。
1.对我来说,这甚至不可能。如果是的话,它肯定比简单地使用
malloc
/calloc
更复杂。