开发平台(Platform): (Ex: VC++, GCC, Linux, ...)
codeblock GCC 4.8.1
最近在学C++ 遇到双重指标与多维阵列问题
有看到一个网页上
int x[1][20];
int (*p)[20] = x;
比较常用以下写法
int **p=(int**)x;
接着我想测试那个常用写法是否可以就自己写了一个小程式
int a1[3][2] ;
int** a2 = (int**)a1 ;
int count=0;
for (int i = 0; i < 3; ++i){
for (int j = 0; j < 2; ++j){
a1[i][j] = ++count;
std::cout << "a1["<<i<<"]["<<j<<"] :" << a1[i][j] <<"\t";
std::cout << "a2["<<i<<"]["<<j<<"] :" << *((*a2+i)+j) <<"\t";
}
printf("\n");
}
我想说 如果 a1给值的话 照理说 a2也应该有设定到值
compiler没有问题 但是 执行之后 dos画面 会写 没有回应 就停止程式
不知道是什么原因? 我有上网查过 用双重指标表示二维阵列的其他写法
还是想问一下 这样写为什么有错误? 感谢!