有没有办法找到堆内存的起始和结束地址.
#include<stdio.h>
void main()
{
printf("Ending address of Heap: %x\n",sbrk(0));
}
Run Code Online (Sandbox Code Playgroud)
上面的代码显示了堆内存的结束地址.就像那样有任何方法可以找到堆的起始地址.
输出:
堆结束地址:8556000
在 Linux 上,您可以打开文件 /proc/self/maps,例如使用 fopen,然后读取它,直到找到如下行:
0060f000-00630000 rw-p 00000000 00:00 0 [堆]
0060f000-00630000 - 堆的地址范围