C28198
advertencia C28198: Posible pérdida de memoria debido a una excepción.
Esta advertencia indica que la memoria asignada no se libera después de que se inicia una excepción.El fragmento al final de la ruta de acceso puede provocar una excepción.La memoria ha pasado a una función que podría haber guardado una copia que se libera más adelante.
Esta advertencia es muy similar a la advertencia C28197.Las anotaciones recomendadas para el uso con la advertencia C28197 también se pueden utilizar aquí.
Ejemplo
El siguiente ejemplo de código genera la advertencia:
char *p1 = new char[10];
char *p2 = new char[10];
test(p1); // does not save a copy of p
delete[] p2;
delete[] p1;
El siguiente ejemplo de código evita la advertencia:
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
;
}