我有一个字符串,我需要将其传递给如下函数。
scanf("%s%d",&name,&telno);
addatend(telno,name);
在哪里
char name[MAX];
我收到以下警告:
warning: format ‘%s’ expects argument of type ‘char *’, but argument 2 has type ‘char (*)[50]’ [-Wformat]
我确实尝试过做一些改变,比如多了一个char
指针并指向name
. 但是警告仍然存在。
在函数中我有 strcpy
strcpy(addnode->name,name1);
这是结构中的name
从头到尾。但是这条线存在分段错误。main
name
addnode
我尝试检查夹板(此行没有任何问题)和 valgrind,但无法识别我的错误。因此来这里寻求帮助。提前致谢..
编码:
typedef struct Mystruct{
char *name;
int telno;
struct Mystruct *nextp;
}data;
void addatend(int telno1, char* name1)
{
data *addnode, *previousnode;
addnode = malloc (sizeof(data));
if(addnode == NULL)
{
printf("Memory allocation failed...Exiting");
exit(0);
}
strcpy(addnode->name,name1); //error Part of the code.