C-将字符串复制到链表变量中
我留下了代码的其他部分,但它似乎没有将字符串复制到newInput->str中 接受的字符串只有64个字节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
复印件之后我打印出来的时候它是空白的。有什么线索吗?你把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,除非你真的知道它是为什么而设计的。