双指针使用char指针将char数组值赋值给char数组

时间:2015-08-04 10:18:14

标签: c arrays pointers struct singly-linked-list

我有这个功能,我试图将值分配给结构的成员。

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

1 个答案:

答案 0 :(得分:1)

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

由于您传递名称,您最有可能想要使用的是strcpy()

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

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

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