如果我的代码如下,我如何使用delete来确保所有动态分配的数据被安全删除?
float** test;
test = new float*[3];
for(int i=0;i<3;i++)
test[i] = new float[2];
答案 0 :(得分:2)
黄金法则 - 针对您需要的每个new/new[]
delete/delete[]
。所以:
for(int i=0;i<3;i++)
delete[] test[i];
delete[] test;
与new/new[]
相同,但顺序相反。
答案 1 :(得分:1)
与分配它的方式相同:
for( in i = 0l i < 3; i++ )
delete[] test[i];
delete[] test;
答案 2 :(得分:1)
反过来说:
for(int i=0;i<3;i++)
delete[] test[i];
delete[] test;
答案 3 :(得分:1)
for( int i = (0); i < 3; ++i )
{
delete[] test[i];
}
delete[] test;