[英]Double pointer assigning char array value to char array, of structure using char pointer
我有此功能,我試圖將值分配給結構的成員。
void Add(NodeDef **Head, char *Data){
ptrHead=(struct Node **)malloc(sizeof(struct Node));
(*Head)->Data=*(Data);
(*Head)->NextNode=NULL;
}
我這樣稱呼這個功能
for (i = 0; i < 5; i++)
AddToLinkedList( &Head, iData[i].name);
iData
是將數據存儲為字符串的結構的成員( char iData[50]
)。
現在我遇到了類似的錯誤
error: assignment to expression with array type
(*Head)->Data=*(Data);
錯誤消息類型為struct成員Data
的類型(在(*Head)->Data=*(Data);
是數組,您正在為其分配一個char值。
由於您傳遞了name ,因此您最可能要使用的是在那里的strcpy()
:
strcpy((*Head)->Data, Data);
或者,如果您只想存儲一個char,則需要將結構中的Data
類型從char[N]
更改為char
。
另外,看看強制轉換malloc的返回值怎么了?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.