内存释放不完全正常(节点)

Eid*_*nMK 0 c++

我曾尝试创建了一段代码,以了解内存重新分配工作,我已经明白,对于每一个新的运营商我用,我需要删除它,我已经做了一段代码,似乎这样做,但看着任务管理器,之后我运行代码,首先它需要344KB和创建节点35.3mb后删除它们后会下降到3044Kb(3MB),而不是这是344KB的初始内存使用情况,我不知道为什么.

#include <iostream>
using namespace std;
class Node{
public:
int value;
Node *next;
Node(int value){
    this->value = value;
    next = NULL;
}
};
int main(){
system("pause");
Node *head = new Node(999999);
Node *prev = head;
for (int i = 0; i < 500000; i++){
    Node *newNode = new Node(i);
    prev->next = newNode;
    prev = newNode;
}

while (head != NULL){
    Node *toDelete = head;
    head = head->next;
    delete toDelete;
}
system("pause");
return 0;
}
Run Code Online (Sandbox Code Playgroud)

ren*_*tze 6

操作系统的内存统计信息只是您正在调查的内容的粗略指示.你最好使用和理解像valgrind那样的内存泄漏检测器.