c++ - 删除数组中指针的正确方法是什么?

标签 c++ arrays

//the setup
tiles = new Tile **[num_bands];
for( int i = 0 ; i < num_bands ; i++ )
tiles[i] = new Tile *[num_spokes];  

for(int i=0; i < num_bands; i++){
    for(int ii=0; ii < num_spokes; ii++){
        tiles[i][ii] = 0; 
    }
}


 //the problem
delete tiles[1][1];

当我删除一个 tile 时,tiles[1][1] 仍然保存着一个地址。我认为它应该是一个空指针或 0x0,但它不是。我删除这个错了吗?

最佳答案

delete 不应该使指针为空;如果您愿意,这是您自己的责任。

基本上,delete 只是意味着“我不再需要这个地址的内存,所以你可以用它做别的事情。” - 它没有说明指向释放地址的值指针将具有什么。

关于c++ - 删除数组中指针的正确方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3182316/

相关文章:

c++ - c++中...的用途是什么

c - 如何用一行在 C 中初始化一个数组?

java - Java中的数组列表

c++ - 有人可以解释这个 C++ 符号吗?

c++ - 为什么我会收到错误 "Floating point exception"?

c++ - 递归 Floodfill 段错误

c++ - 字符串和 getline 字符

c++ - Float 或 Double 特殊值

arrays - 如何创建包含大型数组的结构体数组?

ruby-on-rails - 如何在 Rails View 中循环并打印多维数组?