cin一个非常大的int数组,段错误11

MrR*_*ROY 1 c++

这是我的代码:

int main(){
    int n = 0;
    std::cin>>n;
    int lh[n][2];

    for(int i = 0; i < n; i++) {
        std::cin>>lh[i][0]>>lh[i][1];
    }
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

我不知道为什么,如果n非常小,它运行正常,但是当n更大,比如10,000,000时,就会发现segmentfault 11错误.

这里发生了什么 ?

Abh*_*sal 5

首先,这不是有效的C++.

std::cin>>n;
int lh[n][2];
Run Code Online (Sandbox Code Playgroud)

n应该是编译时常量.

其次,正如已经指出的那样,你正在为大n使用太多内存