指向合并的2D数组的指针

时间:2015-02-01 17:12:48

标签: c pointers

这应该非常简单,几个小时已经花了,但我仍然无法解决这个问题。

我只需要一个指向合并的2D数组的指针。

int a1[2][3] = {{1,2,3}, {4,5,6}};
int a2[4][3] = {{7,8,9}, {6,9,6}, {1,2,3}, {4,5,6}};

// This is fine
int (*p)[3] = a1;

// compilation error - incompatible types int[3] from type int (*)[3]
*(p + 2) = a2

我理解这个问题,但无法解决这个问题。

1 个答案:

答案 0 :(得分:0)

你根本无法在C中分配数组,这就是语句*(p + 2)试图做的事情:它解除引用p一次,这导致三个数组整数(p指的是什么),你不能为该数组分配任何东西。