簡體   English   中英

std :: bad_alloc ulimit

[英]std::bad_alloc ulimit

我正在使用32位Ubuntu 12.04。 RAM為7.7 GB。 當我運行某個進程(用C ++編寫)並達到50%的RAM使用率時,這樣的進程會拋出一個“std :: bad_alloc”。 奇怪的是堆大小是無限的(命令ulimit -v返回“unlimted”)。 那可能是什么原因?

在大多數32位平台上,進程不可能處理超過4GB(2 ^ 32字節)的虛擬內存。 在32位Linux上,為內核保留了1GB的地址空間,因此用戶進程限制為3GB的可尋址內存。

在32位計算機上,即使使用PAE ,單個進程地址空間也不能大於4GB。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM