c - 从指针分配结构的成员值

标签 c pointers struct assign

我有一个结构和一个函数,它返回一个指向它读取的结构的指针:

typedef struct cal_t {
    float xm; 
    float ym; 
    float xn; 
    float yn; 
} cal_t;


struct cal_t *lld_tpReadCalibration(void);

在其他地方,我确实有一个该结构的实例:

struct cal_t cal;

现在我需要将结构实例的值分配给从中返回指针的结构的值。所以我想要的是 cal.xm 与 lld_tpReadCalibration() 内部的 cal->xm 的值相同。象征性地:

struct cal_t cal;

cal = lld_tpReadCalibration();

但这当然行不通:

error: incompatible types when assigning to type 'volatile struct cal_t' from type 'struct cal_t *'

我怎样才能使它按照我想要的方式工作?

感谢您的帮助。

最佳答案

您需要以某种方式解除对指针的引用。您正在从函数中返回一个指针,因此您正在寻找 * 运算符或 ->,这当然是 的同义词* 与 .

您将cal 定义为struct cal_t,该函数返回指向cal_t 的指针。所以你需要取消引用指针。

cal = *lld_tpReadCalibration();

关于c - 从指针分配结构的成员值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13022317/

相关文章:

c - 写入 stdin 并从 stdout 读取(UNIX/LINUX/C 编程)

c - 结构体指针不能正常工作?

inheritance - 一个结构是否可以扩展现有结构,同时保留所有字段?

c++ - 是否有帮助使用私有(private)结构的功能

go - 检查结构字段是否为空

c++ - VS2010 中的 Windows 窗体应用程序无需 .NET?

c - 结构中未调整大小的数组声明

c - 将二维数组传递给函数很困难

使用动态分配的数组指针调用函数

c++ - vector 的指针问题