this program uses gets(), which is unsafe.

今上午用Xcode 写一个简单地程序,程序里面用到了gets()这个函数,在run之后,终端下面 给出了警告.

查阅资料之后,才明白.gets() 函数则是从标准输入stdin读取一个字符串,遇到换行或结束时候终止.如果输入的字符数超过了空间的做大限度(也就是缓冲区溢出),

超出的数据会将继续写入到堆栈中把之前的数据给覆盖掉.

建议是: char * fgets (char * str, int num, FILE *stream);

 用fgets()函数替代gets函数,  fgets()函数是从流stream中读入最多num个字符到字符数组str中,当遇到换行符时,或读到num-1个字符时停止.并且在结尾自动加上'\0'空字符.

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值