gpt4 book ai didi

c++ - 释放指针 vector ,但内存仍在使用

转载 作者:搜寻专家 更新时间:2023-10-31 00:46:57 25 4
gpt4 key购买 nike

我不知道下面的代码有什么问题!我正在删除所有指针,但是当我使用“top”命令查看内存时,我可以看到仍然有很多内存分配给程序。我是否遗漏了一些东西来释放内存?

#include <iostream>
#include <vector>

using namespace std;

int main()
{
vector<int*> container;
vector<int*>::iterator itr;
unsigned long long i;

for(i = 0; i < 10000000; i++)
{
int* temp = new int();
*temp = 1;
container.push_back(temp);
}

for(itr = container.begin(); itr != container.end(); itr++)
{
delete *itr;
*itr = NULL;
}

container.clear();
cout<<"\nafter clear\n";

while(1)
{
sleep(1000000);
}

return 0;
}

最佳答案

此代码中没有泄漏(假设在 allcoation 之后和释放之前没有抛出异常)。您没有看到内存下降的原因是 CRT 可能不会立即将您删除 的内存释放回进程。它可能会保留它以备将来使用。但是,保证在进程终止时释放内存。

关于c++ - 释放指针 vector ,但内存仍在使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4537556/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com