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> | ||
− | + | ||
+ | 上記のように配列を解放するときは[]が必要です。 | ||
+ | |||
+ | 多次元配列を解放する場合は動的に生成したすべての要素を順序立てて解放する必要があります。 | ||
+ | |||
+ | 例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> |