为什么在c语言中使用gets函数是危险的
答案:1 悬赏:30 手机版
解决时间 2021-11-17 12:17
- 提问者网友:火车头
- 2021-11-17 05:11
为什么在c语言中使用gets函数是危险的
最佳答案
- 五星知识达人网友:动情书生
- 2021-11-17 06:49
谈不上“危险”,
gets() 函数从标准输入读入 一行文本,直到读到 新行符 或 EOF 字符 之前,不会停止读入文本。也就是:gets() 不检查边界。因此,当变量空间 小于 一行字符串 时, 使用 gets() 会造成 溢出,程序出错。
例如:
#include
int main( )
{
char s[5];
printf ("input one line: ");
gets(s);
printf ("%s\n",s);
return 0;
}
这里,char s[5]; 最多存放 5个字符,如果 输入一行字符 太多, 例如 输入了 10 个字符,程序会 出错。出错其实没什么大不了,发现问题,你可以修改 成 char s[15]; 或 输入语句提示
printf ("input one line, less than 5 chars: "); 谈不上“危险”.
gets() 函数从标准输入读入 一行文本,直到读到 新行符 或 EOF 字符 之前,不会停止读入文本。也就是:gets() 不检查边界。因此,当变量空间 小于 一行字符串 时, 使用 gets() 会造成 溢出,程序出错。
例如:
#include
int main( )
{
char s[5];
printf ("input one line: ");
gets(s);
printf ("%s\n",s);
return 0;
}
这里,char s[5]; 最多存放 5个字符,如果 输入一行字符 太多, 例如 输入了 10 个字符,程序会 出错。出错其实没什么大不了,发现问题,你可以修改 成 char s[15]; 或 输入语句提示
printf ("input one line, less than 5 chars: "); 谈不上“危险”.
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯