【发布时间】:2015-11-28 15:52:26
【问题描述】:
假设我分配了一个足够大的char** 数组。
为什么我可以free(arr) 而不是free(arr + 5)?
请注意,我说的不是arr[0] 或arr[5]。
【问题讨论】:
-
主要是因为标准是这么说的。出于更多技术原因,一些
malloc()实现将簿记数据放在分配的内存区域之前。将指针malloc()传递给free()之外的其他内容会导致free()将垃圾数据解释为具有致命后果的簿记数据。 -
谢谢,我明白了。