你能用双指针引用二维数组吗?

时间:2014-01-15 02:30:36

标签: c++ arrays pointers

我认为我对数组和指针的理解有点模糊。更大的目标是将指针交换为两个数组。在下面的示例中,我首先创建一个指向静态数组a的临时指针b。然后我插入一个元素1.我想,因为b指向a,b [0] [0]会访问数组,但它给我分段错误。为什么会这样?

#include <iostream>

using namespace std;

int main()
{

    int a[10][10];

    int ** b = (int **) a;

    a[0][0] = 1;

    cout << b[0][0] << endl;


   return 0;
}

1 个答案:

答案 0 :(得分:2)

您可以将int ** b = (int **) a;更改为int(*b)[10] = a;,您将获得成功。

您应该知道a的类型是int (*a)[10]