Partager via


C28198

avertissement C28198 : Possible mémoire manquante liée à une exception.

Cet avertissement indique que la mémoire allouée n'est pas libérée lorsqu'une exception est levée.L'instruction à la fin de le chemin d'accès peut lever une exception.La mémoire a été passée à une fonction qui peut avoir enregistré une copie à libérer ultérieurement.

Cet avertissement est très similaire à C28197avertissement.Les annotations qui est préférable d'utiliser avec avertissement C28197 peuvent également être utilisées ici.

Exemple

L'exemple de code suivant génère cet avertissement :

char *p1 = new char[10];
char *p2 = new char[10];

test(p1);   // does not save a copy of p

delete[] p2;
delete[] p1;

L'exemple de code suivant permet d'éviter cet avertissement :

char *p1 = new char[10];
char *p2 = NULL;

test(p1);   // does not save a copy of p
try {
    p2 = new char[10];
} catch (std::bad_alloc *e) {
    // just handle the throw
    ;
}