內存充足時,malloc內存分配失敗問題

如題,爲什麼內存充足時,malloc內存分配失敗?


首先,在32位平臺下,系統最多可管理4G內存,其中2G系統自用,剩下2G可供用戶使用,然而在實際分配時,用戶可用空間始終小於2G(若有童鞋在如上條件下分配空間 等於或大於2G可以聯繫我哦,以讓我糾正自己的錯誤)。64位則可以管理好多,有興趣的童鞋可以自己算下哦!偷笑


那麼,這些跟malloc內存分配失敗有什麼關係呢有什麼關係呢?哈哈,問題就在這裏,32位平臺下就不多說,相信上面的敘述可以解決童鞋們的問題。在64位平臺下,童鞋們是不是發現依舊只能分配2G不到的內存?這是因爲,目前幾乎所有的編譯器在安裝時debug模式,release模式默認是在32位平臺的。可以理解爲,程序是否爲32/64位程序與系統無關,而是由編譯器決定。所以,只需要修改編譯器的編譯選項,這裏以VS2013爲例。

在界面窗口有可選的debug/release編譯選項,單擊這裏,然後選中配置管理器,將32位平臺替換爲64位平臺即可。若編譯選項中沒有x64,那麼就自己創建一個,狂點下一步就行(相信這個大家還是能搞的定,就不上圖了哦)。


按照如上方法,問題是不是解決了呢?

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章