-1

我创建了一个具有很少整数变量的对象,并且一个 char 内存块说它分配了 300-500 字节的内存作为其成员。之后这个对象被一个线程推入向量,然后另一个并行运行的线程将与一个空向量交换并开始处理包含该对象的向量,在处理后我曾经删除对象中使用的字符块和还完成了对象并删除了对象。但似乎内存没有释放。我用 valgrind 工具运行了这段代码,它没有显示任何泄漏。请帮我解决问题

4

1 回答 1

3

但似乎内存没有释放。

你是如何确定的?我假设不正确。调用delete whatever将该内存标记为已释放并释放以供将来使用。该语言没有具体说明这意味着什么。你的操作系统比你更擅长管理内存。例如,不必强制确保您用于测量内存使用的任何工具(任务管理器?)现在看到 X 更多的空闲字节。

您正在使用的内存现在可以重新分配。这就是你需要关心的,让操作系统的内存管理器担心细节。

于 2013-01-27T07:01:10.390 回答