我遇到strcpy()函数问题。输出仅显示前4个字母。我的代码出了什么问题?
#include <stdio.h>
#include <string.h>
int main()
{
char *ch,c[50];
strcpy(&ch, "lkiop");
strcpy(c, &ch);
printf("%s", c);
return 0;
}
答案 0 :(得分:3)
ch
指针未指向有效内存。尝试取消引用此类指针将调用 Undefined Behavior 。 &ch
的类型为char **
,strcpy()
的第一个参数应为char *
。您需要将代码更改为
char ch[50];
char c[50];
strcpy(ch, "lkiop");
strcpy(c, ch);
此外,不得忽略编译器警告,除非您真的故意做了会触发警告的事情,在这种情况下,您可以让编译器忽略该特定警告。