簡體   English   中英

在C中將指針分配給結構的問題

[英]problem assigning a pointer to a struct in C

這是我在程序中遇到的錯誤:

[Error] cannot convert 'struct(*)[5] ' to 'struct* {aka Contact*}' in assignment

當我嘗試這樣做時:

typedef struct Contact{
    char FName[];
    char LName[];
} cont;                                                                    

cont AddressBook[SIZE];                                                   

int main(){ 
    cont *adbook = (cont *)calloc (SIZE, sizeof(cont));
    adbook=&AddressBook
}

如何將結構數組的地址分配給指針?

希望您能夠幫助我。

當我們聲明數組時,它的變量名實際上已經是一個指向其地址的指針。

所以當你表演時

adbook=&AddressBook;

這就像說指向指向AddressBook的指針的地址一樣。 這是無效的分配。 (有點像將Pointer to Pointer(**)分配給單個Pointer(*))。

通過在分配給指針的同時刪除'&'運算符,可以輕松解決此問題。 進行中 :

adbook=AddressBook;

這僅表示“指向AdressBook的位置。

編碼愉快!

暫無
暫無

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

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