Cpp Delete演算子 新しいページはコチラ

提供: yonewiki
移動: 案内, 検索
(delete演算子)
(delete演算子)
20行: 20行:
 
例2
 
例2
 
<syntaxhighlight lang="cpp">
 
<syntaxhighlight lang="cpp">
   int nLength =strlen(pcStrOrigin)
+
   int nLength = strlen(pcStrOrigin)
 
   char *pcMessage;
 
   char *pcMessage;
 
   pcMessage = new char[nLength];
 
   pcMessage = new char[nLength];
26行: 26行:
 
   delete[] pcMessage;
 
   delete[] pcMessage;
 
</syntaxhighlight>
 
</syntaxhighlight>
このように配列のメモリを解放できますが、配列終端が未使用あるいは\0あるいは0である必要があります。全部を使ってしまうと終端がわからず、メモリ解放処理が失敗します。
+
 
 +
上記のように配列を解放するときは[]が必要です。
 +
 
 +
多次元配列を解放する場合は動的に生成したすべての要素を順序立てて解放する必要があります。
 +
 
 +
例3
 +
<syntaxhighlight lang="cpp">
 +
  char ***pppcStrChart = new char**[10];
 +
  for(int i = 0;i < 10;i++){
 +
    pppcStrChart[i] = new char*[2];
 +
    for(int j = 0;j < 2;j++){
 +
      pppcStrChart[i][j] = new char[256];     
 +
    }
 +
  }
 +
  …
 +
  for(int i = 0;i < 10;i++){
 +
    for(int j = 0;j < 2;j++){
 +
      delete[] pppcStrChart[i][j];     
 +
    }
 +
    delete[] pppcStrChart[i];     
 +
  }
 +
  delete[] pppcStrChart;
 +
</syntaxhighlight>

2014年11月7日 (金) 00:00時点における版



個人用ツール
名前空間

変種
操作
案内
ツールボックス