【发布时间】:2017-02-06 17:45:41
【问题描述】:
如果我们使用 realloc() 来扩展一个数组,我们需要在指向旧数组的指针上调用 free() 吗? Realloc() 有时会使用内存中的同一位置进行扩展,所以我担心调用 free() 会释放我新扩展的数组。
另外,使用 realloc() 是深度复制数组的好主意吗?
【问题讨论】:
-
不,你没有。如果
realloc调用成功,旧指针会自动失效。 -
"使用 realloc() 是深度复制数组的好主意吗?"不,
realloc不能保证执行数组的深拷贝。这也不是它的意图。
标签: c memory-management