我有一个全新的microsoft visual studio安装C ++ 2012和Qt Creator 5.2.1 for msvc2012_64bit。
要测试我的程序是否编译为64位,我打印指针的大小,它产生8个字节。 所以我假设它在64位编译。
但是当我尝试分配一个20亿的整数块时,我得到一个错误的alloc异常。 我是否需要添加一个选项以允许分配大于4GB的块?
注意:我在Windows 7 Home高级版上运行我的程序。可能有分配限制吗? 我已经看到有8GB的ram限制。
修改 在分配错误的14次分配之后,在500 000 000字节的序列块中分配停止。这总共高达7GiB分配。我的物理内存是8GB。最后没有限制。这证明确实存在碎片问题。增加我的电脑中的内存应该可以让我进一步提升极限。 顺便说一下,Windows 7 Home Premium的最大可用内存大小仅为16GB。它的专业版或企业版为192GB。