我有一个结构
typedef struct
{
float m[4][4];
} myMatrix;
由于程序的某些需要,我需要将其转换为 float*
我是这样做的
if(! g_Fvar16)
g_Fvar16 = (float*)malloc(sizeof(float) * 16);
memcpy(&g_Fvar16, &struct_var, sizeof(float)*16);
return g_Fvar16;
这是一个简单的函数。现在,从我调用这个函数的地方,程序在访问这些值时崩溃。 g_Fvar16
是 float*
sizeof(struct_var)
是 64,分配的内存量也是 64。
我不能简单地将复制的内存视为 float* 吗?我认为这将是最快的..
最佳答案
g_fVer16
已经是一个指针,所以你要这样写
memcpy(g_Fvar16, &struct_var, sizeof(float)*16);
代替
memcpy(&g_Fvar16, &struct_var, sizeof(float)*16);
(注意第一个&
)
关于c++ - 从结构转换为浮点*,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20199929/