我有以下两个typedef:
以下是函数定义:
为什么下面的代码会给我一个类型转换错误?
尝试将
将函数的返回值强制转换为
typedef float matrix_3x4[3][4];
typedef matrix_3x4 bone_mat[128];
以下是函数定义:
float ****get_bones();
为什么下面的代码会给我一个类型转换错误?
bone_mat *mat = get_bones();
错误:
error: cannot convert ‘float ****’ to ‘float (*)[128][3][4]’ in initialization
85 | bone_mat *mat = get_bones();
| ~~~~~~~~~^~
| |
| float****
尝试将
mat
的类型更改为bone_mat
或bone_mat**
,但是float(*)[128][3][4]
不应该与float****
相同吗?将函数的返回值强制转换为
(bone_mat*)
也不起作用。
float ****
很难进行推理。 - pmacfarlanefloat****
并不是一个4维数组。 - tstanislfloat****
本身没有包含维度信息,因此即使它可以使用ptr[a][b][c][d]
的语法,它也不是指向数组的指针。 - tstanislget_bones()
的源代码吗?如果有的话,能贴出来吗? - Andrew Henle