0

これは、2D配列に動的メモリを割り当てる方法です

char **twod;

twod=new char*[count];
for (int i = 0; i < count; i++)
{
    twod [i] = new char [MAX];
}

これは、2D配列のメモリを解放する方法です

for (int i=0; i<count;i++)
  {
      delete [] twod [i];

  }
   delete [] twod;

すべてを正常にリリースし、メモリリークがないことをどのように確認できますか???

4

1 に答える 1

4

動的に割り当てられたメモリが正常に解放されたかどうかを確認する方法

valgrind またはそのようなメモリ リーク検出ツールでコードを実行します。必要に応じて、クラスのand演算子を
オーバーロードして、自分で予約を行うこともできますが、それは手間がかかりすぎるため、メモリ リーク検出ツールを使用して設定することをお勧めします。 newdelete

もちろん、この例は単なるサンプル例であり、通常使用するコードではないと考えています。

  1. 動的割り当ては避けた方がよいでしょう。代わりに自動変数を使用してください。
  2. 生のポインタではなく、RAII でスマート ポインタを使用する必要がある場合。
于 2013-01-27T07:00:24.470 に答える