提问人:Александр Шафиков 提问时间:12/22/2022 更新时间:12/22/2022 访问量:65
C++ 中数组的空波因特异常 [已关闭]
Null poinnter exception with array in C++ [closed]
问:
我试图学习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;
}
我在谷歌上搜索了关于空指针异常的答案。我明白它是什么,但不明白为什么它在我的程序中提出。我的数组有 3 个项目,所以我认为 i<4 语句是正确的
答:
3赞
Unmitigated
12/22/2022
#1
该数组有三个元素,但您正在尝试在最后一次迭代中访问第四个元素。循环中的条件是错误的。(注意:自 C++ 17 以来,您可以使用 或 计算元素的数量。for
sizeof arr / sizeof *arr
std::size(arr)
int arr[] = {1, 2, 3};
for (int i = 0; i < 3; i++){
std::cout << arr[i] << '\n';
}
为了完全避免此类问题,请使用基于范围的 for 循环。
for (const int& x : arr) {
std::cout << x << '\n';
}
评论
0赞
tadman
12/22/2022
基于范围的循环!基于范围的循环!基于范围的循环!for
for
for
评论
i < 4
for(int i=0; i < 3; i++)
int[] arr
int arr[]
exit 0;
#
include <iostream>