1

如果我的代码如下,我如何使用 delete 来确保安全删除所有动态分配的数据?

float** test;
test = new float*[3];
for(int i=0;i<3;i++)
    test[i] = new float[2];
4

4 回答 4

2

黄金法则 - 满足new/new[]您的每一个需求delete/delete[]。所以:

for(int i=0;i<3;i++)
    delete[] test[i];
delete[] test;

与 相同new/new[],但顺序相反。

于 2012-11-13T11:12:04.653 回答
1

与您分配它的方式相同:

for( in i = 0l i < 3; i++ )
    delete[] test[i];
delete[] test;
于 2012-11-13T11:10:34.797 回答
1

只是反过来做:

for(int i=0;i<3;i++)
    delete[] test[i];

delete[] test;
于 2012-11-13T11:12:01.723 回答
1
for( int i = (0); i < 3; ++i )
{
    delete[] test[i];
}
delete[] test;
于 2012-11-13T11:12:04.140 回答