int main() {
char *w;
strcpy(w, "Hello Word");
printf("%s\n", w);
return 0;
}
在上面的代码中使用char指针的方式有什么问题?
答案 0 :(得分:4)
您不为字符串分配空间。 w只是一个指向某个内存的指针(垃圾值,因为它没有被初始化)。
char w[32];
或
char *w = malloc(32);
您需要为角色分配空间。
答案 1 :(得分:3)
没有分配内存。
添加
w = (char *)malloc(42);
答案 2 :(得分:3)
这是一个未初始化的指针。 strcpy将写入内存中的某个未知位置。
答案 3 :(得分:2)
好的,你没有向系统要求内存,要将它与字符串一起使用。此代码将起作用
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main() {
char w[11];
strcpy(w, "Hello Word");
printf("%s\n", w);
return 0;
}
该代码将w声明为char数组,为其保留内存空间。另一种方法是使用malloc或calloc作为char指针。了解一下。