Anu*_*bha 5 c++ pointers memory-management
在简单的一维数组中:
node *nodes = new node[MAX_NODES];
Run Code Online (Sandbox Code Playgroud)
删除:
delete [] nodes;
Run Code Online (Sandbox Code Playgroud)
删除数组中分配的所有节点.
但在这种情况下:
float (*buildingArray)[3] = new float[10][3];
Run Code Online (Sandbox Code Playgroud)
这个语句是否buildingArray包含3个浮点指针的单维数组?这是解除分配线:
delete[] buildingArray;
Run Code Online (Sandbox Code Playgroud)
以上是否释放delete了数组,但我怀疑它是否会删除它的引用?
Alo*_*ave 16
上面的取消分配是否删除了数组?
是的,它确实.
只需遵循以下规则:
你需要打电话或分别打电话delete或delete []打电话.newnew []
如果你有一个指针数组,其中每个索引都分配了动态内存,你需要显式循环它并显式释放每个数组元素.
另外,您最好使用std::vector或不使用std::array动态分配的数组.