【发布时间】:2016-02-07 05:00:33
【问题描述】:
假设我有一个数组 arr[10],然后我将所有元素复制到另一个数组 arr2[20]。我不再需要 arr,所以我执行 arr=arr2 将其指针移动到新数组。 arr[10] 使用的内存是否仍在使用,还是自动释放?如果还在使用,有没有办法让我在重新分配指针之前释放它?
【问题讨论】:
-
您需要发布代码,因为您描述的内容是不可能的(即先有 arr[10],然后是 arr=arr2)。
-
感谢 Jim,我现在意识到了这一点。你知道如何将一个数组变量重新分配给另一个数组吗?
-
使用指针。您可以将指针分配给
arr,然后根据您要执行的操作将其指向arr2。 -
但是,无论如何,正如其他答案所说,除非您确定数组的使用范围,否则您不能在函数结束之前释放堆栈内存,但即使 then 也没有保证,因为编译器可以为所欲为。
-
太棒了!多谢;这真的很有帮助。我对数组不是指针有点困惑。
标签: c memory-management