[解決済み] delete vs delete[] [duplicate] (重複)
2022-11-20 04:29:18
質問
重複の可能性があります。
( POD )メモリの解放 : delete[] は delete と同じですか?
私がC++を教わったころは、ずいぶん昔の話です。を絶対に使うなと言われました。
delete
が
delete[]
を実行するように
delete[]
を実行することは、1つのオブジェクトに対して
delete
. 先生をあまり信用してはいけないと思いつつも、これは本当なのだろうか?
を呼ぶ理由があるのだろうか?
delete
の代わりに
delete[]
?
私はSOで関連しそうな質問をスキャンしましたが、明確な答えは見つかりませんでした。
どのように解決するのですか?
規格(5.3.5/2)から:
最初の選択肢(delete オブジェクト)では,オペランドの値として へのポインタでなければならない。 配列でないオブジェクトへのポインタ、あるいは サブオブジェクト(1.8)へのポインタでなければならない。 へのポインタでなければならない(第10節)。 そうでない場合、動作は未定義である。
2番目の選択肢(delete 配列)では,オペランドの値として のオペランドの値は,前の配列から生じたポインタの値でなければならない。 であり,以前の配列 の新しい式になります。 でない場合、その の動作は未定義です。
だからダメなんだ : これらは決して同等ではない !
関連
-
[解決済み】致命的なエラー LNK1169: ゲームプログラミングで1つ以上の多重定義されたシンボルが発見された
-
[解決済み】Visual C++で "Debug Assertion failed "の原因となる行を見つける。
-
[解決済み】エラー。引数リストに一致するコンストラクタのインスタンスがない
-
[解決済み] C++のdeleteとdelete[]演算子
-
[解決済み】JavaScriptで配列の要素を削除する - delete vs splice
-
[解決済み】NULLポインタの削除は安全ですか?
-
[解決済み】関数宣言の後の=deleteの意味
-
[解決済み】C++で "delete this "は許されるのか?
-
[解決済み】new/deleteとmalloc/freeの違いは何ですか?
-
[解決済み] なぜdeleteはポインタをNULLにしないのですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Visual Studio 2015で「非標準の構文。'&'を使用してメンバーへのポインターを作成します」エラー
-
[解決済み】クラステンプレートの引数リストがない
-
[解決済み】Cygwin Make bash コマンドが見つかりません。
-
[解決済み】C++の余分な資格エラー
-
[解決済み】なぜ、サイズ8の初期化されていない値を使用するのでしょうか?
-
[解決済み】 while(cin) と while(cin >> num) の違いは何ですか?)
-
[解決済み] 配列のベクトルを扱う正しい方法
-
[解決済み】変数やフィールドがvoid宣言されている
-
[解決済み】'std::cout'への未定義の参照
-
[解決済み] スタックアロケーションにより初期化されていない値が作成された