我在win7上工作,需要使用malloc分配2個緩衝區,每個660M字節 第一次分配OK,secon緩衝區分配失敗。 我會對磁盤 670G免費MEM什麼是最大的malloc大小?有什麼能爲上述問題的原因最大malloc大小
0
A
回答
1
最大有效malloc()
尺寸是適合進程堆的狀態。堆可以被分割(例如,有600M空閒內存塊的堆,然後20M使用塊,然後再次600MB空閒塊 - 儘管有1.2GB的空閒內存,但你無法獲得650M)。此外,加載DLL的AFAIK,Windows機制將每個庫綁定到某個地址,所以內存可能已經被DLL分割了。
1
你告訴你有670G空閒內存,但這是硬盤空間。
正在運行的程序需要內存RAM並且可能您的RAM內存低於您所需的內存。因此,您使用malloc獲取錯誤分配內存。
相關問題
- 1. 零大小的malloc
- 2. strcpy的大小大於的malloc
- 3. 如何更改C++中的malloc()分配的最大大小
- 4. 大小的內存的malloc
- 5. 最大大小
- 6. 的malloc的最大尺寸()
- 7. 最大CAShapeLayer大小?
- 8. 最小/最大
- 9. Varchar的最大大小(最大)
- 10. 最小和最大
- 11. 最大和最小
- 12. 什麼是最大的布爾malloc大小?店內15拼圖指出
- 13. Yii2最大文件大小
- 14. OracleType的最大大小.ARRAY
- 15. SmtpClient.Send附件最大大小
- 16. $ _POST最大數組大小
- 17. ASP.NET緩存最大大小
- 18. 檢索最大列大小
- 19. RadAsyncUpload最大文件大小
- 20. Java最大文件大小
- 21. GWT:最大響應大小
- 22. 定義最大RelativeLayout大小
- 23. SharedPreferences類的最大大小
- 24. 最大數組大小
- 25. .net最大類大小
- 26. Python:最大數組大小?
- 27. 的WebSockets - 最大幀大小
- 28. 最大連接池大小
- 29. CouchDB文檔最大大小
- 30. JavaScript最大表格大小
你的問題可能是內存碎片,沒有足夠大的單個連續塊來滿足660MB。 –
另一種可能性是你實際上已經用完了內存。在PC上不太可能,但確實存在少於1.2GB的系統。也許你正在使用其中之一。 –
如果您的應用程序是32位,那麼每個進程的最大限制爲2GB。我非常確定顯卡的內存可以吃到這個,所以你實際分配的數量可能會少一些。 –