将 void* 转换为二维数组

标签 c casting multidimensional-array

我有一个 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/

相关文章:

c++ - 如何从虚拟磁盘中提取文件?

当元素重复时,Javascript从多维数组中删除行

php - 可靠地将包含 PHP 数组信息的字符串转换为数组

c++ - 如何获取数据 IWbemClassObject **

c++ - Printf 和 scanf 在没有 stdio.h 的情况下工作,为什么?

c - 下面的输出是如何生成的?

java - 在Java中将String转换为double

java:如何修复未经检查的转换警告

generics - F# 泛型和转换

c# - 单词搜索拼图的标签间距不均匀