将指针的2D数组传递给函数C.

use*_*777 0 c arrays pointers 2d function

我有一个2D数组指针

main.c

Int32 * pRxSeqAddr[2][2];

func(pRxSeqAddr);
Run Code Online (Sandbox Code Playgroud)

/

func.c

void func( Int32** pRxSeqAddrPtr)
{

///
}
Run Code Online (Sandbox Code Playgroud)

我收到此错误:

argument of type "Int32 *(*)[2]" is incompatible with parameter of type "Int32 **
Run Code Online (Sandbox Code Playgroud)

我知道如果它是指针的一维数组,那么这个函数调用很好,但2D唠叨我...

请帮忙

Pau*_*l R 5

将func.c更改为:

void func(Int32 *pRxSeqAddrPtr[][2])
{

}
Run Code Online (Sandbox Code Playgroud)

通常,要将2D数组传递给函数,您需要为除第一个维度以外的所有维度指定数组维度,因此在此示例中,您需要[2]作为最后一个维度,但您可以选择省略第一个维度,即

void func(Int32 *pRxSeqAddrPtr[2][2])
{

}
Run Code Online (Sandbox Code Playgroud)

也有效,但有些多余.