c中使用gets() 提示warning: this program uses gets(), which is unsafe.
2024-08-26 02:33:40
今天在C代码中使用gets()时提示“warning: this program uses gets(), which is unsafe.”,然后这个程序还能运行,无聊的我开始查阅资料,为啥gets()会unsafe呢。
通过Google查阅前辈的问答,原来是这么回事。
gets()这个函数只有一个参数,那就是字符缓冲区的指针,并没有指定该缓冲区的长度也就是大小。当你输入一个很长很长的字符串的时候,gets ()函数会把每一个字符都存入到栈(statck)中,因此当字符串很大的时候就会导致程序异常终止。前辈们给的建议是使用fgets()函数替代gets()。
例子:
//使用gets() char buffer[4096]; gets(buffer); //使用fgets()替换gets() char buffer[4096]; fgets(buffer, (sizeof buffer / sizeof buffer[0]), stdin);
参考网址:
最新文章
- [LeetCode] Remove Nth Node From End of List 移除链表倒数第N个节点
- ReportView报表开发记录(一)
- Java实现验证码制作之一Kaptcha验证码
- Office2010与vs2008不兼容导致的一系列问题(vs设计视图打不开,无法启动Asp.Net Development Server)
- iOS 如何适配iOS10
- Java:多线程
- Java学习----对象与对象之间的关系
- VS2012JSON自动生成对应的类
- linux_ssky-keygen + ssh-copy-id 无密码登陆远程LINUX主机
- SQL SERVER Buffer Pool扩展
- Mybatis generator代码生成
- 如何处理MySQL每月5亿的数据
- lnmp1.4 安装php fileinfo扩展 方法
- Educational Codeforces Round 47
- eclipse4.5(mars)环境
- 0051 MyBatis关联映射--多对多关系
- Django 实现网站注册用户邮箱验证功能
- HDU 1754——I Hate It——————【线段树单点替换、区间求最大值】
- 用树莓派做FTP服务器
- typedef函数用法