【发布时间】:2011-11-27 19:43:39
【问题描述】:
我有一个 void* 我得到了一些函数,它实际上是一个二维 int 数组。 我想将它作为参数发送给需要二维数组的函数。 正确投射的最佳方法是什么?
void foo(void* val){
//How to cast val in order to send to bar??
bar()
}
void bar(int val[2][2]){
//Do something
}
【问题讨论】:
-
void *不会在 C 中自动翻译自己吗? -
我无法更改 bar 的签名!
-
@CarlNorum - 仅调用 bar(val) 不会编译
-
@Zahy:你试过了吗?它适用于我的编译器(GCC 4.6.1,C99 标准),即使打开所有警告也不会发出警告。根据标准,我相信它应该在任何 C 编译器中工作(尽管不在 C++ 编译器中)。
-
是的。我的错误确实有效(!) - 反应太快了。
标签: c casting multidimensional-array