C28198
предупреждение C28198: Возможна утечка памяти вследствие исключения.
Данное предупреждение указывает, что после возникновения исключения выделенная память не была освобождена.Инструкция в конце пути может вызвать исключение.Память была передана функции, которая могла сохранить копию, которую необходимо освободить позже.
Это предупреждение очень похоже на предупреждение C28197.Аннотации, которые рекомендованы для использования с предупреждением C28197, можно также использовать здесь.
Пример
Это предупреждение появляется в следующем примере кода:
char *p1 = new char[10];
char *p2 = new char[10];
test(p1); // does not save a copy of p
delete[] p2;
delete[] p1;
В следующем примере кода показано, как избежать появления данного предупреждения:
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
;
}