访问数组时出现的c++段错误

c++ segfault when accessing array

本文关键字:段错误 错误 c++ 数组 访问      更新时间:2023-10-16

我想检查一些关于访问冲突的事情,所以我写下了下面的代码:

int a[] = {1,2,3};
for(int i=0; i < 20000; i++) {
    cout << i << ": " << a[i] << endl;
}

它崩溃了,因为它应该。

现在,这段代码应该段错误,因为20000太高了,我超出了我的地址空间,对吗?

我不明白的是为什么它在不同的i上分割错误。每次我运行这段代码时,都会在不同的位置出现段错误。这是因为我的数组在堆栈上被分配到不同的位置并且得到了比以前更多或更少的地址空间吗?

堆栈在某处被分配。

你不知道它离你的堆栈有多远