我有一个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
}
bar((int(*)[2]) val);
(正如Carl Norum所说的,演员阵容实际上是不需要的;但它的优点是,如果您不小心将它传递给期望的函数(例如int(*)[3]
),它会给您一个编译器警告。