c++ - 从结构转换为浮点*

标签 c++ matrix struct floating-point

我有一个结构

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_Fvar16float*

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/

相关文章:

c - 使用 rand() 在 C 中填充矩阵

C结构问题

ruby - 为什么这个变量在结构中消失了?

c++ - 创建RAII类时应如何处理错误?

c++ - 64 位 SendMessage API

c++ - 用 C++ 编写 PostgreSQL 函数

c++ - 如何修复在 visual studio 2013 上构建 VirtualplannetBuilder 源代码时出现的错误?

python - 将 3D 矩阵转换为垂直级联的 1D 数组

c - 矩阵嵌套在另一个矩阵中

c - 我将如何读取一行,解析信息,然后将其归因于 C 中的结构?