【发布时间】:2013-09-30 01:13:10
【问题描述】:
这是给 C 的。
我认为 malloc 通常会在最后一次分配之后分配堆上的下一个可用空间。
是否可以让 malloc 不这样做并选择您希望在堆上分配内存的位置?
一般有什么方法可以在堆上分配内存,让它不是下一个可用地址,而是“更远”的地址吗?
基本上,我的 malloc 空间 + 更多空间被覆盖(作为测试),所以我丢失了与 malloc 空间相关的元数据,因为它存储在 malloc 空间旁边(即使我使用不同的 malloc 调用)。
谢谢, 杰里米
【问题讨论】:
-
“覆盖(作为测试)”是什么意思?你的意思是你是故意覆盖,还是在测试期间覆盖?
-
如果您的元数据被覆盖,我会查看您正在使用内存的代码,可能是以不正确的方式。看到那段代码会很有帮助。
标签: c memory memory-management malloc