释放数组的不同方法 - C++

Aro*_*tVW 4 c++ arrays memory-management

如果你说过

int *arr = new int[5];
Run Code Online (Sandbox Code Playgroud)

有什么区别

delete arr;
Run Code Online (Sandbox Code Playgroud)

delete [] arr;
Run Code Online (Sandbox Code Playgroud)

我问这个是因为我试图释放二维数组的内存并且

delete [][] arr; 
Run Code Online (Sandbox Code Playgroud)

似乎不起作用,但是

delete arr;
Run Code Online (Sandbox Code Playgroud)

似乎工作正常

先感谢您!

O'N*_*eil 6

new type要求delete
new type[size]要求delete []
使用其中一个而不是另一个是错误的。

顺便说一句,除非你有充分的理由,否则你不应该使用这样的原始指针。使用std::vectorstd::array代替。

2D MxN数组通常应该线性化为 1DM*N数组,也使用这些容器。