C++ 动态二维数组的安全删除
如果我的代码如下所示,如何使用delete确保安全删除所有动态分配的数据C++ 动态二维数组的安全删除,c++,pointers,C++,Pointers,如果我的代码如下所示,如何使用delete确保安全删除所有动态分配的数据 float** test; test = new float*[3]; for(int i=0;i<3;i++) test[i] = new float[2]; 与您分配它的方式相同: for( in i = 0l i < 3; i++ ) delete[] test[i]; delete[] test; 与您分配它的方式相同: for( in i = 0l i < 3; i++ )
float** test;
test = new float*[3];
for(int i=0;i<3;i++)
test[i] = new float[2];
与您分配它的方式相同:
for( in i = 0l i < 3; i++ )
delete[] test[i];
delete[] test;
与您分配它的方式相同:
for( in i = 0l i < 3; i++ )
delete[] test[i];
delete[] test;
只要把它倒过来:
for(int i=0;i<3;i++)
delete[] test[i];
delete[] test;
只要把它倒过来:
for(int i=0;i<3;i++)
delete[] test[i];
delete[] test;
黄金法则-对于每个新的[],您都需要删除[]。因此:
与new/new[]相同,但顺序相反。黄金法则-对于每个new/new[],您都需要删除/删除[]。因此:
与new/new[]相同,但顺序相反。对于每个新的用法删除,对于每个新的[]使用delete[]。但是,请参阅std::vector。是否确保安全删除所有动态分配的数据?这样地?对于每个新的使用删除,对于每个新的[]使用删除[]。但是,请参阅std::vector。是否确保安全删除所有动态分配的数据?这样地?这不会在i=0L中编译这不会在i=0L中编译这不会在i=0L中编译这只是两个打字错误l=;'错过了“t”[@OlafDietsche]这不会在i=0lThanks中编译,只有两个输入错误…'l=;'错过了“t”[@OlafDietsche]