这个C(strcpy)代码有什么问题?

int main() { char *w; strcpy(w, "Hello Word"); printf("%s\n", w); return 0; } 

在上面的代码中使用char指针的方式有什么问题?

好的,你没有向系统要求内存,要将它与字符串一起使用。 这段代码可行

 #include  #include  #include  int main() { char w[11]; strcpy(w, "Hello Word"); printf("%s\n", w); return 0; } 

该代码将w声明为char数组,为其保留内存空间。 另一种方法是使用malloc或calloc作为char指针。 了解一下。

您不为字符串分配空间。 w只是指向某个内存的指针(垃圾值,因为它没有初始化)。

 char w[32]; 

要么

 char *w = malloc(32); 

您需要为字符分配空间。

没有分配内存。

 w = (char *)malloc(42); 

这是一个未初始化的指针。 strcpy将写入内存中的某个未知位置。