2016-11-19 6 views
1

質問タイトルが暗示するように、静的定数がある場合。大量の静的配列を考えて、使用する静的配列を決定する必要があります。私は、いくつかの条件をチェックし、必要な静的配列へのポインタを返すことでそうすることができます。静的を指すローカルポインタを削除する必要があります

ただし、私が(type) * (name) = (static array)を一部の機能に保存すると、deleteに電話する必要がありますか?

+1

いいえ、 'new'で割り当てられていないポインタに対して' delete'を呼び出すか、 'delete []'と 'delete'を混在させても、未定義の動作になります。 – dasblinkenlight

答えて

0

「静的な配列」であなたはどこかstatic int x[100];を宣言し、あなたの関数がxの最初の要素へのポインタを返す意味(int *fooreturn x;で終わる例えば機能、そしてあなたがint *bar = foo();を行う)、いいえ、あなたは間違いなく「ドン場合そのポインタdeleteしたくない。 newでヒープから割り当てられていないので、delete dであってはなりません。 deleteはヒープメモリのみを処理します。

0

deleteは、ターゲットメモリがnewによって割り当てられている場合にのみ必要です。

関連する問題