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为从标准终端输入。
posted @ 2022-01-08 13:07  曼路的个人博客  阅读(303)  评论(0编辑  收藏  举报