如果我有类似的东西
int* thing;
thing = new int[10]
(more code...)
thing = new int[50];
我需要在它们之间做delete[] thing
吗?为了确定/安全,因为无论如何我都会发帖,这样做没有任何问题吗?
最佳答案
为了安全起见,您应该始终删除在堆上分配的内存,否则会出现内存泄漏,这在未来可能会导致内存紧缩并导致您的应用程序崩溃。
//在栈上分配内存(栈内存一旦超出范围就会被删除,由编译器自动删除)
int* thing;
//数组10分配在堆上(堆内存由用户负责删除,否则会内存泄漏)
thing = new int[10]
//理想情况下,你应该删除这里分配在堆上的内存,否则会出现内存泄漏,这可能导致将来内存紧缩:
(more code...)
delete []thing;
thing = new int[50];
关于c++ - 用另一个新语句重置动态数组,需要先删除吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43314491/