指针指向数组

时间:2015-06-18 22:57:34

标签: c++ arrays pointers

最近,我一直试图通过指针加强我的技能,我遇到了以下问题:

我有以下代码,但是我遇到了运行时错误。我尝试查找一些关于迭代表示数组的指针的东西,但我找不到任何东西。

有人能帮我找到问题吗?

#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';
}

1 个答案:

答案 0 :(得分:3)

你还没有为数组声明任何存储空间,arr实际上也没有指向数组的第一个元素(解除引用是未定义的行为)。

您遗漏了以下内容:

int solve[2];
int * arr = solve;

int solve[2];
int * arr = &solve[0];

两种方式都会将范围内正确分配的存储地址分配给arr,并将其解除引用,定义为行为。