向量中的内存分配错误

时间:2018-11-09 08:05:24

标签: c++ vector memory-management

看看这段代码:

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

现在,如果我接受m = 999999298(这是一个整数,对吗?)。为什么在向量中出现“内存分配错误”错误。

1 个答案:

答案 0 :(得分:8)

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

您声明的vector试图分配999999299个 integer 元素,每个元素的值均为0。将整数的大小视为4个字节,这大约是3.7 GB的内存。看来您的应用程序没有那么多的内存。这就是为什么您会收到“内存分配错误”错误的原因。

关于为什么有这样的限制,您可以阅读此question及其答案。