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