将void*转换为二维数组

Zah*_*ahy 2 c casting multidimensional-array

我有一个空*我进入一些实际上是二维int数组的函数.我想将它作为参数发送给需要二维数组的函数.正确施放它的最佳方法是什么?

void foo(void* val){
   //How to cast val in order to send to bar??
   bar()
}

void bar(int val[2][2]){
//Do something 
}
Run Code Online (Sandbox Code Playgroud)

rua*_*akh 6

bar((int(*)[2]) val);
Run Code Online (Sandbox Code Playgroud)

(正如卡尔·诺鲁姆所说的那样,演员阵容实际上并不是必需的;但是如果你不小心将它传递给期望的一个函数,那么它的优势在于给你一个编译器警告int(*)[3].)