【发布时间】:2013-06-26 04:39:25
【问题描述】:
在x64中,通过malloc()获取不到1.9G内存,而我的物理内存是8G,为什么会这样?
【问题讨论】:
-
是32位还是64位进程?此外,物理内存!= 虚拟内存
-
检查您的链接设置——您使用的是 64 位编译器、链接器等吗?
-
什么操作系统?操作系统可能会施加每个进程的大小限制。要判断您是在 32 位还是 64 位模式下编译,请检查指针的大小:
printf("%d\n", (int)sizeof (void*)); -
转到此[链接][1],您会找到一些信息。 [1]:stackoverflow.com/questions/9537967/…
-
您肯定将程序编译为 32 位进程。另外,你是把所有这些都分配在一个大块还是几个小块中?