c - 如何将 void* 转换为 int[][3]

标签 c casting

我需要将类型为 int[][3] 的变量传递给只接受 void* 作为参数的回调函数。我该怎么做?

以下代码无法编译:

void myfunc(void *param) {
    int i[][3];
    i=*param;
    printf("%d\n",i[1][2]);
}

int main(int argc, char *argv[])
{
    int i[][3]={
        {1, 2, 3},
        {4, 5, 6},
        {7, 8, 9}};
    myfunc(i);
}

最佳答案

使用:

int (*i)[3] = param;

然后像以前一样使用它。这是一个指向整数数组的指针。

关于c - 如何将 void* 转换为 int[][3],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56054015/

相关文章:

c - ipcs -s 不显示命名信号量

javascript - emscripten - 如何从 JavaScript (Chrome/Firefox) 读取 C 数组?

c - open() 系统调用有时会失败,有时会成功

javascript - 如何实现parseFloat

casting - Inno Setup/Pascal 脚本 - 类型转换返回 Nil

c - 如何类型转换 void 指针?

c++ - 如果用 C++ 重写了 C 项目的部分代码,但保留了相同的 API,是否存在 ABI 兼容性问题?

c# - 将 Dictionary<string, string> 转换为 Dictionary<string, object> 的最简单方法是什么?

c++ - 从 Const 引用接口(interface)向上转换到派生类

c - dmalloc 提供返回地址信息显示 `unknown' ?