C6283
警告 C6283: <変数> は配列 new [] で割り当てられていますが、スカラー delete で削除されています
この警告は、C++ のコードだけで発生します。呼び出し関数が配列 new [] 演算子によって一貫性のないメモリ割り当てを行い、スカラー型の delete 演算子によって解放したことを示します。この問題により、リークやメモリ破損が発生する可能性があります。さらに、演算子がオーバーライドされる状況ではクラッシュする場合もあります。配列 new [] を使用してメモリが割り当てられた場合、一般的には配列 delete[] を使用して解放する必要があります。
使用例
この警告が発生するコード例を次に示します。
void f( )
{
char *str = new char[50];
// code ...
delete str;
}
この警告を解決するには、次のコードを使用します。
void f( )
{
char *str = new char[50];
// code ...
delete[] str;
}
警告 C6283 は、整数や文字などのプリミティブ型の配列にのみ適用されます。配列の要素がクラス型のオブジェクトである場合、警告 C6278 が発生します。