我正在尝试在X86_64 Linux上进行一些测试,并且我想知道如何使malloc()分配大于4 GiB范围内的返回地址
我是否必须使用单独的/自定义库覆盖malloc还是有其他简单的方法来做到这一点?
谢谢。
- - 编辑 - -
我感兴趣的是将地址当作值(uintptr_t)时的地址,它的虚拟地址还是物理地址都没有关系,因为我想要的就是该地址必须是大于4GiB 的值
我在Linux x86_64上将gcc(4.2.1)与一起使用-m64
(希望我把问题弄清楚了)
malloc()是错误的工具。您想要mmap() /dev/zero(这是malloc()现代幕后的工作glibc),IIRC。(在Unix上。我相信Win32也有类似的API,但我不能告诉你它是什么。)