加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

在Windows或Visual Studio中获取大块内存有什么特别之处吗?

发布时间:2020-12-14 03:59:27 所属栏目:Windows 来源:网络整理
导读:这是我正在打电话. table = (int *) malloc(sizeof(int) * (C+1) * (N+1)); C 1 * N 1为657,562,500 但是这个调用在Windows上执行时为我返回NULL(表示它无法分配该空间量). (它使用较小的数字可以正常工作,并且在我的Linux机器上使用比这更大的数字也能正常
这是我正在打电话.

table  = (int *) malloc(sizeof(int) * (C+1) * (N+1));

C 1 * N 1为657,562,500

但是这个调用在Windows上执行时为我返回NULL(表示它无法分配该空间量).
(它使用较小的数字可以正常工作,并且在我的Linux机器上使用比这更大的数字也能正常工作)

在此之前,该计划并没有真正做多少.

当我查看任务管理器时,它显示28.1 GB的可用内存.

所以我想知道,有什么我可以在Visual Studio中设置像编译器标志或者什么东西,这将允许我像这样抓住大块的内存?

如果我的数学是正确的,我相信我要求大约1.22GB.

感谢任何帮助

编辑:
显然我需要将其作为64位应用程序运行.任何人都知道如何在Visual Studio中将c项目更改为64位?在平台Win32下的配置参数是唯一的选择.

解决方法

您可能已将项目设置设置为构建32位应用程序.

虽然您的计算机可能有大量可用内存,但32位应用程序的使用量不能超过2GB.根据我的估计,4字节x 650M约为2.6 GB.

尝试更改项目设置以构建64位平台.

但仍然问自己为什么要一次分配这么多内存.这很可能表明程序设计存在问题.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读