我有一个二维指针数组
main.c
Int32 * pRxSeqAddr[2][2];
func(pRxSeqAddr);
/
func.c
void func( Int32** pRxSeqAddrPtr)
{
///
}
我收到这个错误:
argument of type "Int32 *(*)[2]" is incompatible with parameter of type "Int32 **
我知道如果它是一维指针数组那么这个函数调用没问题,但是二维让我很烦..
请帮忙
最佳答案
将 func.c 更改为:
void func(Int32 *pRxSeqAddrPtr[][2])
{
}
通常,要将二维数组传递给函数,您需要为除第一维以外的所有维度指定数组维度,因此在此示例中,您需要为最后一个维度指定 [2],但您可以选择为第一维省略它, 即
void func(Int32 *pRxSeqAddrPtr[2][2])
{
}
也是有效的,但有些多余。
关于c - 将二维指针数组传递给函数 C,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4152837/