date: 2023-12-22 09:44:42
tags: malloc memory check
- 代码
#include <iostream>
#include <malloc.h>
using namespace std;
int main()
{
// 调用mallinfo()函数获取堆内存的统计信息
struct mallinfo mi;
int *a[10];
size_t old=0;
size_t delta=0;
for(int i=0;i<10;i++)
{
a[i]=0;
a[i] = (int*)malloc(40000000);
mi = mallinfo();
// 计算堆内存的已使用大小
size_t heap_used = mi.arena + mi.hblkhd;
// 打印堆内存的统计信息
delta = heap_used - old;
cout << "heap_used: " << heap_used << " bytes| delta: " << delta << endl;
cout << mi.arena<<" "<<mi.ordblks<<" "<<mi.smblks<<" "<<mi.hblks<<endl;
old = heap_used;
}
return 0;
}
- 输出结果
heap_used: 40214528 bytes| delta: 40214528
212992 1 0 1
heap_used: 80216064 bytes| delta: 40001536
212992 1 0 2
heap_used: 120217600 bytes| delta: 40001536
212992 1 0 3
heap_used: 160219136 bytes| delta: 40001536
212992 1 0 4
heap_used: 200220672 bytes| delta: 40001536
212992 1 0 5
heap_used: 240222208 bytes| delta: 40001536
212992 1 0 6
heap_used: 280223744 bytes| delta: 40001536
212992 1 0 7
heap_used: 320225280 bytes| delta: 40001536
212992 1 0 8
heap_used: 360226816 bytes| delta: 40001536
212992 1 0 9
heap_used: 400228352 bytes| delta: 40001536
212992 1 0 10