如果我的代码如下,我如何使用 delete 来确保安全删除所有动态分配的数据?
float** test;
test = new float*[3];
for(int i=0;i<3;i++)
test[i] = new float[2];
黄金法则 - 满足new/new[]
您的每一个需求delete/delete[]
。所以:
for(int i=0;i<3;i++)
delete[] test[i];
delete[] test;
与 相同new/new[]
,但顺序相反。
与您分配它的方式相同:
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;