[英]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.