在C中遇到strcpy()函数有问题

时间:2016-02-20 18:17:58

标签: c string pointers

我遇到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;
}

1 个答案:

答案 0 :(得分:3)

  1. ch指针未指向有效内存。尝试取消引用此类指针将调用 Undefined Behavior
  2. &ch的类型为char **strcpy()的第一个参数应为char *。您需要将代码更改为

    char ch[50];
    char c[50];
    
    strcpy(ch, "lkiop");
    strcpy(c, ch);
    

    此外,不得忽略编译器警告,除非您真的故意做了会触发警告的事情,在这种情况下,您可以让编译器忽略该特定警告。

相关问题