kum*_*mar 5 c gcc heap-memory elf
有没有办法在Linux中的GCC编译C程序中设置堆起始地址?在x86_64系统中,我的测试程序将堆地址设置为4字节引用的地址(小于FFFFFFFF).我想将此设置为8字节引用的地址进行一些测试(> FFFFFFFF).GCC是否提供了设置堆起始地址的方法?
您可以使用sbrk()以下方法间接执行此操作:
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
int main(void)
{
sbrk(0xFFFFFFFF);
printf("%p\n", malloc(1));
return 0;
}
Run Code Online (Sandbox Code Playgroud)
这通过在开始时“分配” 0xFFFFFFFF 字节来工作,以便接下来malloc()可以分配更高的地址。
| 归档时间: |
|
| 查看次数: |
1226 次 |
| 最近记录: |