我认为我对数组和指针的理解有点模糊。更大的目标是将指针交换为两个数组。在下面的示例中,我首先创建一个指向静态数组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;
}
答案 0 :(得分:2)
您可以将int ** b = (int **) a;
更改为int(*b)[10] = a;
,您将获得成功。
您应该知道a
的类型是int (*a)[10]
。