出错的情况是写成了scanf("%s", str), 报错是存在内存冲突。
改为scanf("%s", str,10),需要第三个参数指定缓冲区大小,解决冲突问题。
#include <stdio.h>
int main() {
char str[10];
printf_s("用scanf读入字符串,以enter结束输入。(程序以空格或tab停止读入):\n");
scanf_s("%s", str,10); // 要写三个参数,最后一个指定缓冲区大小,否则会报错有冲突
printf_s("输入为:%s", str);
return 0;
}
本文介绍了在C语言中使用scanf函数时遇到的内存冲突问题。通过示例代码展示了当省略缓冲区大小参数时,如何引发错误,并解释了添加第三个参数指定缓冲区大小以避免冲突的重要性。通过修改后的代码,读者可以学习到更安全的字符串输入方法。
4128

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



