我希望有人能帮助我,我正在尝试使用 Visual C++ 2010 在我的应用程序上创建一个 int[400000000](4 亿)数组,但它会生成溢出错误 相同的代码在使用 g++ 的 linux 上运行。 我需要这个,因为我正在处理大型矩阵。 提前谢谢你。
最佳答案
如果您使用的是 32 位应用程序,则默认情况下您只有 2GB 的用户地址空间。 4亿个整数大约是1.5GB。您很可能没有这么大的连续地址空间。可以强制 32 位窗口为每个进程分配 3GB 的用户地址空间,但这可能只是您情况的权宜之计。
如果您可以迁移到 64 位架构,那么这应该不是问题;否则,您应该找到一种不需要单个连续存储 block 的方式来存储矩阵数据,例如将其存储在 block 中。
关于c++ - 堆上非常大的数组 (Visual C++),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3691196/