所以我在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]'
我以前一直害怕使用多维数组的指针,但我真的想知道如何避免得到这个警告?
此致
答案 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);
因此对于有相同问题的人来说,这就是你如何正确处理多维数组指针。