警告:从不兼容的指针类型传递'foo'的参数x

时间:2015-05-10 16:53:13

标签: pointers gcc gcc-warning

所以我在AVR GCC编程,我已经查看了一些关于此警告的类似问题,我似乎无法找到明确的解决方案。

当使用多维数组中的数组作为函数的指针参数时,我收到此警告:

// Prototype
int getneighbours (uint8_t *neix[], uint8_t *neiy[], uint8_t nodex, uint8_t nodey);

// Call
uint8_t neighbours[2][4];
getneighbours (&neighbours[X], &neighbours[Y], nodex, nodey);

// Message
expected 'uint8_t **' but argument is of type 'uint8_t (*)[4]'

我以前一直害怕使用多维数组的指针,但我真的想知道如何避免得到这个警告?

此致

1 个答案:

答案 0 :(得分:0)

我设法找到了解决我自己问题的方法:

// Prototype
void getneighbours (uint8_t (*nei)[2][4], uint8_t nodex, uint8_t nodey);

// Call
uint8_t neighbours[2][4];
getneighbours (&neighbours, nodex, nodey);

因此对于有相同问题的人来说,这就是你如何正确处理多维数组指针。