私のコードが次の場合、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;