【发布时间】:2011-03-17 18:45:02
【问题描述】:
我正在尝试在 X86_64 Linux 上做一些测试,我想知道如何 使 malloc() 在高于 4 GiB 的范围内分配返回地址
我是否必须使用单独/自定义库覆盖 malloc 还是有其他简单的方法可以做到这一点?
谢谢。
----编辑----
我感兴趣的是作为值的地址(uintptr_t)
它的虚拟地址还是物理地址都没有关系,因为,所有
我想要的是地址必须是大于4GiB的值
我在 Linux x86_64 上使用 gcc (4.2.1) 和 -m64
(希望我把问题说清楚了)
【问题讨论】:
-
你怎么知道它没有返回 64 位指针?你做
sizeof(void *)检查了吗? -
malloc() 的全部意义在于它从可用堆中为您提供一块内存,您不必关心它在哪里,当然也不能指定它。除此之外,实际地址在任何情况下都是虚拟地址。