C6283
更新:2007 年 11 月
警告 C6283: <variable> 是以陣列 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 只會套用到基本型別 (Primitive Type) 的陣列,如整數或字元。如果陣列元素為類別型別的物件,則會發出警告 C6278。