c - 将二维指针数组传递给函数 C

标签 c arrays function pointers 2d

我有一个二维指针数组

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/

相关文章:

c++ - 使用 C 生成不重复的随机数列表?

c - time_base 适用于视频但对音频有不良影响

javascript - 根据单选按钮选择显示来自所选数组的图像?

将时间(NULL)转换为本地时间的 C++ 函数

c - 从 C 中的函数返回整数数组而不使用 static

c - 在 C 中生成枚举编译错误

java - C# 数组索引

java - 删除数组java中的特殊字符[]

C++如何测试函数使其抛出错误?

c++ - 绘图功能的表现