gets()函数的不安全性
1.问题描述
在Linux下编译c文件时出现:
warning: the `gets' function is dangerous and should not be used
2.问题分析
问题在于gets()函数在获取输入时,不会对输入有检查,如果无限输入会造成栈空间溢出,在程序返回时,不能正常的找到返回地址,程序将发生不可预测行为。
3.问题解决
使用fgets()函数。
fgets()函数的基本用法为:
fgets(char * s,int size,FILE * stream);//eg:可以用fgets(tempstr,10,stdin)//tempstr 为char[]变量,10为要输入的字符串长度,stdin为从标准终端输入。
本文来自博客园,作者:曼路的个人博客,转载请注明原文链接:https://www.cnblogs.com/manlujun/p/15778011.html