我有以下代码

void foo()
{
    char* pcBlock = new char[1000];
    ...
    delete[] pcBlock;
    ...
    pcBlock = new char[100000];
    ...
    delete[] pcBlock;
}


下面的代码会导致内存泄漏吗?

void foo()
{
    char* pcBlock = new char[1000];
    ...
    pcBlock = new char[100000];
    ...
    delete[] pcBlock;
}

最佳答案

是的,如果您在第一个delete[] pcBlock中没有...,则可能会发生内存泄漏。重新分配指针不会自动删除它先前指向的内容。

10-08 11:56