C&C++   发布时间:2022-04-03  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了在C中分配超过4GB的内存大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我需要在我的C程序中分配超过4GB的内存(在 Windows上运行 – 64位).
显然只使用malloc并不能解决问题.

我已经以这种方式阅读了之前的一些帖子,似乎VirtualAlloc可以解决我的问题.
我试图使用它,我不明白与此功能相关的所有参数.
我想我需要准确定义应该分配内存的地址,但我不知道该怎么做.
是否有关于它的简单信息,或者我可以使用的简单示例?

我也不需要在一个块中分配所有内容,因此它可能更容易.还可以接受任何分配超过4GB内存的替代方法.

谢谢.

解决方法

与您的语句相反,malloc()将解决问题,假设您正在使用可以生成64位可执行文件的实现(包括编译器和库),并且已将其配置为执行此操作(即构建64-位目标).某些工具链能够构建64位目标,但@L_674_13@认情况下(例如,在关联的IDE中使用)将只生成32位可执行文件.

如果要构建32位目标(即生成32位可执行文件),那么,是的,malloc()将限制为4GB.可以在64位系统上执行32位可执行文件(假设操作系统允许这样做).但是,在这种情况下,程序对malloc()的使用仍然限制在4GB.

这意味着您需要确保拥有可以构建64位程序的编译器并使用它来构建64位目标.

当然,您应该问的另一个问题是,您是否真的需要在一个块中分配超过4GB的空间.在某些情况下这是合适的,但通常情况下,需要这样做的程序是设计不良或懒惰的标志.

大佬总结

以上是大佬教程为你收集整理的在C中分配超过4GB的内存全部内容,希望文章能够帮你解决在C中分配超过4GB的内存所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。