最近,我一直试图通过指针加强我的技能,我遇到了以下问题:
我有以下代码,但是我遇到了运行时错误。我尝试查找一些关于迭代表示数组的指针的东西,但我找不到任何东西。
有人能帮我找到问题吗?
#include <bits/stdc++.h>
using namespace std;
int main()
{
int * arr;
arr[0]=1;
arr[1]=2;
for (int g=0; g<2; g++) cout << arr[g] << '\n';
}
答案 0 :(得分:3)
你还没有为数组声明任何存储空间,arr实际上也没有指向数组的第一个元素(解除引用是未定义的行为)。
您遗漏了以下内容:
int solve[2];
int * arr = solve;
或
int solve[2];
int * arr = &solve[0];
两种方式都会将范围内正确分配的存储地址分配给arr
,并将其解除引用,定义为行为。