内存充足时,malloc内存分配失败问题
2015-01-25 15:08
253 查看
如题,为什么内存充足时,malloc内存分配失败?
首先,在32位平台下,系统最多可管理4G内存,其中2G系统自用,剩下2G可供用户使用,然而在实际分配时,用户可用空间始终小于2G(若有童鞋在如上条件下分配空间 等于或大于2G可以联系我哦,以让我纠正自己的错误)。64位则可以管理好多,有兴趣的童鞋可以自己算下哦!
那么,这些跟malloc内存分配失败有什么关系呢有什么关系呢?哈哈,问题就在这里,32位平台下就不多说,相信上面的叙述可以解决童鞋们的问题。在64位平台下,童鞋们是不是发现依旧只能分配2G不到的内存?这是因为,目前几乎所有的编译器在安装时debug模式,release模式默认是在32位平台的。可以理解为,程序是否为32/64位程序与系统无关,而是由编译器决定。所以,只需要修改编译器的编译选项,这里以VS2013为例。
在界面窗口有可选的debug/release编译选项,单击这里,然后选中配置管理器,将32位平台替换为64位平台即可。若编译选项中没有x64,那么就自己创建一个,狂点下一步就行(相信这个大家还是能搞的定,就不上图了哦)。
按照如上方法,问题是不是解决了呢?
首先,在32位平台下,系统最多可管理4G内存,其中2G系统自用,剩下2G可供用户使用,然而在实际分配时,用户可用空间始终小于2G(若有童鞋在如上条件下分配空间 等于或大于2G可以联系我哦,以让我纠正自己的错误)。64位则可以管理好多,有兴趣的童鞋可以自己算下哦!
那么,这些跟malloc内存分配失败有什么关系呢有什么关系呢?哈哈,问题就在这里,32位平台下就不多说,相信上面的叙述可以解决童鞋们的问题。在64位平台下,童鞋们是不是发现依旧只能分配2G不到的内存?这是因为,目前几乎所有的编译器在安装时debug模式,release模式默认是在32位平台的。可以理解为,程序是否为32/64位程序与系统无关,而是由编译器决定。所以,只需要修改编译器的编译选项,这里以VS2013为例。
在界面窗口有可选的debug/release编译选项,单击这里,然后选中配置管理器,将32位平台替换为64位平台即可。若编译选项中没有x64,那么就自己创建一个,狂点下一步就行(相信这个大家还是能搞的定,就不上图了哦)。
按照如上方法,问题是不是解决了呢?
相关文章推荐
- C++中malloc/free与new/delete的区别及内存分配失败错误处理
- 在内存充足时malloc函数分配内存失败的原因及解决
- 频繁分配释放内存导致的性能问题的分析 --(附)malloc分配原理浅析 mmap关注焦点 如何优化分配内存
- malloc 内存分配失败很可能的一种原因
- linux下malloc开辟内存失败的问题
- stm32 BOOTLOADER 导出函数给APP调用出现malloc无法分配内存的问题
- (转)!!频繁分配释放内存导致的性能问题的分析 --(附)malloc分配原理浅析 mmap关注焦点 如何优化分配内存
- malloc内存分配字节对齐问题
- 高质量的c/c++编程有关malloc分配内存不足的问题
- malloc 分配内存为零的问题
- 启动regionserver失败内存分配不足问题
- 数据结构 第二章 线性表(2)malloc和realloc内存分配问题
- 视频监控中遇到的内存分配失败问题
- 解决Lunix下的大内存分配运行失败问题---未解决
- 内存分配的问题:关于malloc与free
- malloc分配内存失败
- 经典String str = new String("abc")内存分配问题
- 内存分配问题与调试机制
- VC中结构体内存分配问题透析
- C++ Gotchas 条款61:检查内存分配失败的情形