我有一个 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]
.)
关于将 void* 转换为二维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8288450/