次の方法で共有


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 が発生します。