这个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将写入内存中的某个未知位置。