簡體   English   中英

從指針分配結構的成員值

[英]Assign member values of struct from pointer

我有一個結構和一個函數,它返回一個指向它讀取的結構的指針:

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


struct cal_t *lld_tpReadCalibration(void);

在其他地方,我確實有該結構的一個實例:

struct cal_t cal;

現在,我需要將該結構實例的tha值分配給我返回的指針的結構的值。 所以我想要的是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();

該函數的返回值為struct cal_t *,它是指針類型。

因此,您應該將返回值分配給類型為struct cal_t *的變量。

例如,

struct cal_t *cal_ptr;

cal_ptr = lld_tpReadCalibration();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM