[英]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.