如何解决修复char格式错误——Linux系统C程序
我正在尝试消除程序中的错误。我不确定数组有什么问题。
这是示例代码:
typedef struct listNoNodes
{
char FirstName[50];
char LastName[60];
int ID;
int age;
struct listNoNodes* next;
} listNoNodes;
listNoNodes* listNodes(char FirstName[],char LastName[],int ID,int age,listNoNodes* next)
{
listNoNodes* tmp = (listNoNodes*)malloc(sizeof(listNoNodes));
tmp->FirstName[50] = FirstName;
tmp->LastName[60] = LastName;
tmp->ID = ID;
tmp->age = age;
tmp->next = next;
return tmp;
};
这里是错误
lab3.c: In function ‘listNodes’:
lab3.c:21:21: warning: assignment to ‘char’ from ‘char *’ makes integer from pointer without a cast [-Wint-conversion]
21 | tmp->FirstName[50] = FirstName;
| ^
lab3.c:22:20: warning: assignment to ‘char’ from ‘char *’ makes integer from pointer without a cast [-Wint-conversion]
22 | tmp->LastName[60] = LastName;
解决方法
这两行是错误的:
tmp->FirstName[50] = FirstName;
tmp->LastName[60] = LastName;
您正在尝试将 char*
指针分配给单个 char
元素。
您需要复制数组的内容,例如:
strncpy(tmp->FirstName,FirstName,50);
strncpy(tmp->LastName,LastName,60);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。