双指针将 char 数组值分配给 char 数组,of structure using char pointer

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);

结构成员类型Data的错误消息(在(*Head)->Data=*(Data);中是数组,您正在为其分配一个char值。

由于您传递了 name,您最想使用的是 strcpy()

     strcpy((*Head)->Data, Data);

或者,如果您只想存储一个字符,则需要将结构中 Data 的类型从 char[N].

更改为 char

另请参阅 what's wrong with casting malloc's return value?