我正在尝试使用双指针访问一个二维数组
int x[2][2] = {{10, 20},{30, 40}};
int *xp;
int **xpp;
printf ("%d %d\n%d %d\n", x[0][0], x[0][1], x[1][0], x[1][1]);
printf ("\n");
xp = *x;
printf ("%d %d\n%d %d\n", *xp, *(xp + 1), *(xp + 2), *(xp + 3));
printf ("\n");
xpp = (int**)x;
printf ("%d\n", **xpp);
我得到的是:
10 20 30 40 10 20 30 40 Segmentation fault
问题:我应该如何使用xpp
访问数组?
xpp = (int**)x;
中要进行(int**)
类型转换?这个转换提示着代码在做一些“我比你编译器更了解,所以按照我的指示执行,不要报错”的事情。 - chux - Reinstate Monicaint **xpp;
- 这不是正确的类型。 - chux - Reinstate Monica