字符串输入问题
第一种定义
char* name;
scanf("%s",name);
编译虽然正确,运行却会崩溃
第二种定义
char[20] name;
scanf("%s",name);
就可以成功运行
关于为什么会崩溃
原因:程序之所以崩溃,是因为scanf会把字符串放到指针所指向的内存那里。但是第一种没有对指针进行初始化。指针就随便指。把字符串放到了一个不该放的地方,程序当然就崩溃了。
解决方法:在两行代码之间插入一行 name = (char*)malloc(32*sizeof(char)) 就好了
原创
2022-01-10 14:30:46 ·
290 阅读 ·
0 评论