假设我有一个数组arr [10],然后我将所有元素复制到另一个数组arr2 [20]。我不再需要arr,所以我做arr = arr2将其指针移动到新数组。 arr [10]使用的内存是否仍在使用,还是自动释放?如果它仍然被使用,在重新分配指针之前有没有办法释放它?
答案 0 :(得分:1)
如果您声明了int arr[10];
之类的arr,那么它将存储在stack上,并在函数结束时释放。你通常不能免费堆栈内存功能。
如果您使用malloc()
定义它,那么它将在堆上,您必须使用free()
来释放它。否则它将是内存泄漏并在程序退出后被释放。但是,即使您遇到内存泄漏,由于virtual memory,您的计算机始终可以检索该内存。
答案 1 :(得分:0)
arr [10]使用的内存是否仍在使用,还是自动释放?
这取决于您实际声明数组的方式。