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 に答える