C-将字符串复制到链表变量中

C-将字符串复制到链表变量中,c,string,linked-list,C,String,Linked List,我留下了代码的其他部分,但它似乎没有将字符串复制到newInput->str中 接受的字符串只有64个字节 复印件之后我打印出来的时候它是空白的。有什么线索吗?你把strcpy的参数颠倒过来了,第一个参数是目的地,第二个参数是来源。尝试: #define STRLEN 65 /*Create linked list */ struct node { char str[STRLEN]; struct node *next; }; newInput = malloc(sizeof(s

我留下了代码的其他部分,但它似乎没有将字符串复制到newInput->str中

接受的字符串只有64个字节


复印件之后我打印出来的时候它是空白的。有什么线索吗?

你把strcpy的参数颠倒过来了,第一个参数是目的地,第二个参数是来源。尝试:

#define STRLEN 65

/*Create linked list */
struct node {
   char str[STRLEN];
   struct node *next;
};

newInput = malloc(sizeof(struct node));
strcpy(newStr, newInput->str);

您可以反转strcpy的参数,第一个参数是目标,第二个参数是源。尝试:

#define STRLEN 65

/*Create linked list */
struct node {
   char str[STRLEN];
   struct node *next;
};

newInput = malloc(sizeof(struct node));
strcpy(newStr, newInput->str);
您有要反转的参数。

您有要反转的参数。

的第一个参数是目标,第二个参数是源

所以

应该是

strcpy(newStr, newInput->str);
strcpy(newStr, newInput->str);
的第一个参数是目标,第二个参数是源

所以

应该是

strcpy(newStr, newInput->str);
strcpy(newStr, newInput->str);

您的目的地和来源是反向的:

应该是

strcpy(newStr, newInput->str);
strcpy(newStr, newInput->str);

您的目的地和来源是反向的:

应该是

strcpy(newStr, newInput->str);
strcpy(newStr, newInput->str);
或者更好,
strncpy(newInput->str,newStr,STRLEN)
strncpy
是此处使用的错误函数。它零填充大小的剩余部分,这是浪费时间,如果
newStr
大于目标大小,它将不会以null结尾。永远不要使用strncpy,除非你真的知道它是为什么而设计的。或者更好的是,使用strncpy(newInput->str,newStr,STRLEN)
strncpy
是此处使用的错误函数。它零填充大小的剩余部分,这是浪费时间,如果
newStr
大于目标大小,它将不会以null结尾。永远不要使用strncpy,除非你真的知道它是为什么而设计的。