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
;
}