如题,为什么内存充足时,malloc内存分配失败?
首先,在32位平台下,系统最多可管理4G内存,其中2G系统自用,剩下2G可供用户使用,然而在实际分配时,用户可用空间始终小于2G(若有童鞋在如上条件下分配空间 等于或大于2G可以联系我哦,以让我纠正自己的错误)。64位则可以管理好多,有兴趣的童鞋可以自己算下哦!
那么,这些跟malloc内存分配失败有什么关系呢有什么关系呢?哈哈,问题就在这里,32位平台下就不多说,相信上面的叙述可以解决童鞋们的问题。在64位平台下,童鞋们是不是发现依旧只能分配2G不到的内存?这是因为,目前几乎所有的编译器在安装时debug模式,release模式默认是在32位平台的。可以理解为,程序是否为32/64位程序与系统无关,而是由编译器决定。所以,只需要修改编译器的编译选项,这里以VS2013为例。
在界面窗口有可选的debug/release编译选项,单击这里,然后选中配置管理器,将32位平台替换为64位平台即可。若编译选项中没有x64,那么就自己创建一个,狂点下一步就行(相信这个大家还是能搞的定,就不上图了哦)。
按照如上方法,问题是不是解决了呢?
时间: 2024-11-09 00:29:48