Partager via


C6283

avertissement C6283 : <variable> est alloué avec un tableau new [], mais supprimé avec une variable scalaire delete

Cet avertissement apparaît uniquement dans le code C++ et indique que la fonction d'appel a alloué de façon incohérente de la mémoire avec l'opérateur de tableau new [], mais l'a libérée avec l'opérateur scalaire delete. Ce défaut peut provoquer des fuites, des altérations de la mémoire, et, dans les situations où les opérateurs ont été substitués, des blocages. Si la mémoire est allouée avec un tableau new [], elle doit être libérée généralement avec un tableau delete[].

Exemple

Le code suivant génère cet avertissement :

void f( )
{
  char *str = new char[50];
  // code ...
  delete str;
}

Pour corriger cet avertissement, utilisez le code suivant :

void f( )
{
  char *str = new char[50];
  // code ...
  delete[] str;
}

L'avertissement C6283 s'applique uniquement aux tableaux de types primitifs, par exemple des entiers ou des caractères. Si les éléments du tableau sont des objets de type classe, l'avertissement C6278 s'affiche.