[英]C++ exception: std::bad_alloc
為簡單起見,請考慮具有3個屬性的此類。
class Human
{
public:
int id;
int age;
std::string name;
};
int main()
{
Human *h = new Human[120000]; <-- breaking
return 0;
}
我收到的錯誤是Human.exe中0x76ACC52F的未處理異常:Microsoft C ++異常:內存位置0x000D0EA8的std :: bad_alloc。
運行該程序的計算機具有32 GB RAM和1 TB硬盤驅動器(具有分頁功能)。 人類類具有約350個屬性。 我檢查發現,每個Human對象大約占用29000個字節。 因此總計應該分配29000 X 120000 = 3.48 GB
我假設這是一個內存問題,程序沒有足夠的內存來完成新操作。 通過為什么。 32 GB不是小內存。 除了運行此C ++程序的Visual Studio之外,沒有其他任何程序正在運行。
請讓我知道您對此事的想法和可能的解決方案。
非常感謝你。
因此,如注釋中所示,以64位編譯可以解決此問題,但是您可能應該使用鏈接列表而不是數組,因為它不需要連續的內存塊。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.