C28198
avviso C28198: Probabile perdita di memoria a causa di un'eccezione.
L'avviso indica che la memoria allocata non viene liberata dopo che è stata sollevata un'eccezione.L'istruzione alla fine del percorso può generare un'eccezione.La memoria è stata passata ad una funzione, che può salvare una copia da liberare successivamente.
Questo avviso è molto simile all'avviso C28197.Le annotazioni che sono preferibili da utilizzare con l'avviso C28197 possono essere utilizzate qui.
Esempio
Il seguente codice di esempio genera questo warning:
char *p1 = new char[10];
char *p2 = new char[10];
test(p1); // does not save a copy of p
delete[] p2;
delete[] p1;
L'esempio di codice seguente evita questo avviso:
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
;
}