C6283
Actualización: noviembre 2007
C6283
Advertencia C6283: <variable> está asignado a la nueva matriz [], pero se eliminará con la eliminación escalar.
Esta advertencia sólo aparece en el código de C++ e indica que la función que llama ha asignado memoria de manera inconsistente con el operador de matriz new [], pero lo ha liberado con el operador delete. Este defecto podría producir pérdidas, daños en la memoria y, en situaciones donde se han reemplazado operadores, bloqueos. Si la memoria se asigna con el operador new [] de matriz, lo habitual debe ser liberarla con el operador delete[] de matriz.
Ejemplo
El código siguiente genera esta advertencia:
void f( )
{
char *str = new char[50];
// code ...
delete str;
}
Para corregir esta advertencia, utilice el código siguiente:
void f( )
{
char *str = new char[50];
// code ...
delete[] str;
}
La advertencia C6283 sólo se aplica a las matrices de tipos primitivos como los enteros o caracteres. Si los elementos de la matriz son objetos de tipo de clase, se emite la advertencia C6278.