上級 › new[]とdeleteの不一致が「たまたま動いてしまう」危険性 › パターン4
new[]とdeleteの不一致が「たまたま動いてしまう」危険性
new[]で確保した配列に対して、delete[]ではなく単体用のdeleteを使ってしまう不一致です。
1 #include <iostream> 2 int main() { 3 long *nums = new long[8]; 4 ______________ ^ 5 std::cout << "done" << std::endl; 6 return 0; 7 }
出力: done(クラッシュせず動いてしまう)危険性: 未定義動作であり保証された動作ではない
空欄を埋めてコンパイル・実行を通す
long型の配列でも同じです。new[]で確保したらdelete[]で解放します。
次の問題