今天碰到一个问题,
char *str;
scanf("%s",str);
程序一直报错,最后查到这两句。
很明显,str是一个char类型的指针,但是我声明完了以后就直接给它赋值。这是不可以的。
必须给他开辟空间,让它知道要把数据存储在哪里。
#include<cstdlib>
char *str= (char*)malloc(sizeof(char));
scanf("%s",str);
程序正常启动。
本文探讨了在C语言编程中遇到的一个常见问题:未初始化的指针变量str直接使用scanf进行字符串输入导致的程序错误。解决方法是通过malloc函数为指针分配内存空间,确保数据有存储位置。了解并正确使用动态内存分配对于C语言程序员至关重要。
今天碰到一个问题,
char *str;
scanf("%s",str);
程序一直报错,最后查到这两句。
很明显,str是一个char类型的指针,但是我声明完了以后就直接给它赋值。这是不可以的。
必须给他开辟空间,让它知道要把数据存储在哪里。
#include<cstdlib>
char *str= (char*)malloc(sizeof(char));
scanf("%s",str);
程序正常启动。
1016

被折叠的 条评论
为什么被折叠?