C++中数组的空指针异常[已关闭]

qmelpv7a  于 2022-12-24  发布在  其他
关注(0)|答案(1)|浏览(152)

已关闭。此问题需要details or clarity。当前不接受答案。
**想要改进此问题?**添加详细信息并通过editing this post阐明问题。

2天前关闭。
Improve this question
我试着学习C++的基础知识。现在我试着弄清楚数组。但是当我运行这个小程序时,我的IDE引发了空指针异常。我不明白为什么会发生这种情况。

include <iostream>

using namespace std;

int main(){
int[] arr = {1, 2, 3};
for(int i=0; i < 4; i++){
  cout << arr[i] << endl;
}
exit 0;
}

我在google上搜索了关于空指针异常的答案。我知道它是什么,但不明白为什么它会在我的程序中出现。我的数组有3项,所以我认为i〈4语句是正确的

vaqhlq81

vaqhlq811#

数组有三个元素,但您试图在最后一次迭代中访问第四个元素。for循环中的条件是错误的。(注意:从C++ 17开始,可以使用sizeof arr / sizeof *arrstd::size(arr)计算元素的数量。)

int arr[] = {1, 2, 3}; 
for (int i = 0; i < 3; i++){
  std::cout << arr[i] << '\n';
}

要完全避免这类问题,请使用range-based for loop

for (const int& x : arr) {
    std::cout << x << '\n';
}

相关问题