簡體   English   中英

將結構復制到結構數組

[英]Copy a struct to a struct array

嗨,我需要一些幫助。 我正在嘗試為每個不同的SOwner將SCar結構存儲到SOwner結構內的Scar數組中,盡管出現此錯誤:

從“ struct SCar *”類型分配給“ Scar”類型時,類型不兼容

這是一些代碼:

typedef struct {
char name[40];
SCar cars [100];
} SOwner;

typedef struct {
char color[40];
char brand[12];
} SCar;

SOwner *ownerPTR;
SCar *carPtr

void function(){
for(i=0; i<10 ; i++){
    (ownerPtr)->cars[i] = (carPtr+i);   // Problem here <<<--
}

有沒有簡單的方法可以解決這個問題? 謝謝

您必須取消引用右側的指針才能生成SCar類型的值。

像這樣:

ownerPtr->cars[i] = carPtr[i];

要么

ownerPtr->cars[i] = *(carPtr + i);

但是后者只是編寫前者的一種更復雜的方法,因此只需使用索引即可。

您必須定義一個指針數組

typedef struct {
    char name[40];
    SCar * cars [100];
} SOwner;

暫無
暫無

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

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