在 C++ 中,我理解delete
操作符在与数组一起使用时会“破坏”它,释放它使用的内存。但是当这完成时会发生什么?
我想我的程序只会标记堆的相关部分被释放以供重用,然后继续。
但我也注意到,数组的第一个元素设置为 null,而其他元素保持不变。这是为了什么目的?
int * nums = new int[3];
nums[0] = 1;
nums[1] = 2;
cout << "nums[0]: " << *nums << endl;
cout << "nums[1]: " << *(nums+1) << endl;
delete [] nums;
cout << "nums[0]: " << *nums << endl;
cout << "nums[1]: " << *(nums+1) << endl;