有没有办法在Linux中的GCC编译C程序中设置堆起始地址?在x86_64系统中,我的测试程序将堆地址设置为4字节引用的地址(小于FFFFFFFF)。我想将此设置为8字节引用的地址进行某些测试(> FFFFFFFF)。 GCC是否提供了设置堆起始地址的方法?
答案 0 :(得分:4)
您可以使用sbrk()
:
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
int main(void)
{
sbrk(0xFFFFFFFF);
printf("%p\n", malloc(1));
return 0;
}
这适用于&#34;分配&#34;一开始就是0xFFFFFFFF字节,因此malloc()
可以分配的下一个字符是更高的地址。