Condividi tramite


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