簡體   English   中英

向量中的內存分配不良

[英]Bad memory allocation in vector

看看這段代碼:

int main()
{
    int m;
    cin >> m;
    vector<int> cnt(m +1,0);
}

現在,如果我采取m = 999999298(這是一個int,對吧?)。 為什么我在向量中出現“內存分配錯誤”錯誤?

vector<int> cnt(m +1,0);

的聲明vector必須嘗試分配999999299種整數元素每一個具有值0。考慮整數的大小為4個字節,這是約3.7 GB的內存。 看來你的應用程序不允許那么多內存。 這就是為什么你得到“錯誤的內存分配”錯誤。

至於為什么會有這樣的限制,你可以閱讀這個問題及其答案。

暫無
暫無

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

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