while ( scanf("%s", buf) == 1 )网上说这个的作用是防止溢出缓冲区溢出。这是啥意思啊
关注
码龄 粉丝数 原力等级 --
- 被采纳
- 被点赞
- 采纳率

已结题
C 防止缓冲区溢出的一行代码
收起
- 写回答
- 好问题 0 提建议
- 关注问题
微信扫一扫
点击复制链接分享
- 邀请回答
- 编辑 收藏 删除
- 收藏 举报
1条回答 默认 最新
- 关注
码龄 粉丝数 原力等级 --
- 被采纳
- 被点赞
- 采纳率
CSDN专家-sinJack 2022-01-14 07:45关注scanf()函数返回的是此函数读取到的参数个数。
所以,当scanf("%s",s)正常读取到一个字符串时(不论串的长短如何),scanf()函数的值总是1。只有当它没有读到时(比如,遇到了文件结束、遇到了^Z),就返回读到的参数个数0。
while(scanf("%s",s)==1)就是说当未读到结束时就循环。键盘上以CTRL+Z(^Z)表示结束。本回答被题主选为最佳回答 , 对您是否有帮助呢? 本回答被专家选为最佳回答 , 对您是否有帮助呢? 本回答被题主和专家选为最佳回答 , 对您是否有帮助呢?解决 1无用举报微信扫一扫
点击复制链接分享
编辑预览轻敲空格完成输入- 显示为
- 卡片
- 标题
- 链接
评论按下Enter换行,Ctrl+Enter发表内容
编辑
预览

轻敲空格完成输入
- 显示为
- 卡片
- 标题
- 链接
报告相同问题?
提交
- 2022-05-27 12:16回答 1 已采纳 第一句是new什么?函数吗?
- 2022-07-25 16:40回答 3 已采纳 方案一1,按下键盘Win+R键,打开运行2,输入 msconfig ,点击确定3,在启动选择中,选择 正常启动 ,点击应用 ,在点击 确定 即可。 方案二启动画面,文件被损坏,或者修改,也有可能丢失,
- 2022-10-22 06:01回答 2 已采纳 这个是调用栈 前面数字是出错的代码内存地址
- 2021-09-29 12:27回答 1 已采纳 得看你写的代码,看着内部代码报的错误点没用
- 2022-07-11 09:18回答 1 已采纳 这个警告应该是无法判断newSize+4和m_EmpNum的大小比较,在for循环时可能越界,参考https://blog.csdn.net/weixin_52189903/article/detai
- 2022-08-25 08:46回答 2 已采纳 当j等于index+t的时候,sent[(index + t) - j - 1]的下标岂不是-1了???
- 2021-02-27 22:58weixin_39834745的博客 1 缓冲区溢出原理缓冲区是一块连续的计算机内存区域,可保存相同数据类型的多个实例。缓冲区可以是堆栈(自动变量)、堆(动态内存)和静态数据区(全局或静态)。在C/C++语言中,通常使用字符数组和malloc/new之类内存...
- 2019-06-04 14:49回答 2 已采纳 一个办法是用OD等调试工具,可以看到跳转的地址,一个办法是程序运行的时候,注入一些数据,拿到地址,和前面调试的结果结合起来,看它的偏移位置,通过计算可以找到堆栈上的返回地址。
- 2019-05-17 17:43回答 2 已采纳 堆和栈要相互覆盖,基本不太可能,这个图画得很不成比例,你看那个白色的空间,看上去很小,实际上有几个GB(32bit系统),甚至几个TB(64bit)
- 2017-07-22 04:35回答 2 已采纳 display(array, COLS); void display(int ar[][CLS], int n); 传递的是COLS,最终两个for循环访问的是5 * 5。实际上栈中你给分配3
- 2021-03-22 07:10weixin_39740283的博客 最近一直在学习缓冲区溢出漏洞的攻击,但是关于这一块的内容还是需要很多相关知识的基础,例如编程语言及反汇编工具使用。所以研究透彻还需要不少的时间,这里简单的做一个学习的总结,通过具体的实验案例对缓冲区...
- 2020-02-20 15:37多维学渣的博客 缓冲区溢出 缓冲区溢出漏洞分析原理通过实现理解缓冲区溢出漏洞的原理,清楚在程序调用过程中内存栈的变化。 源代码 #define _CRT_SECURE_NO_WARNINGS #include <stdlib.h> #include <stdio.h> #...
- 2020-11-18 15:43嵌入式与Linux那些事的博客 缓冲区溢出一个常见的后果是:黑客利用函数调用过程中程序的返回地址,将存放这块地址的指针精准指向计算机中存放攻击代码的位置,造成程序异常中止。为了防止发生严重的后果,计算机会采用栈随机化,利用金丝雀值...
- 2021-09-30 15:46Tr0e的博客 文章目录前言 前言 缓冲区是内存中存放数据的地方。在程序试图将数据放到及其内存中的某...缓冲区溢出漏洞是指在程序试图将数据放到及其内存中的某一个位置的时候,因为没有足够的空间就会发生缓冲区溢出的现象。 ...
- 没有解决我的问题, 去提问
问题事件
联系我们(工作时间:8:30-22:00)
400-660-0108kefu@csdn.net在线客服
- 京ICP备19004658号
- 经营性网站备案信息
公安备案号11010502030143
- 营业执照
- 北京互联网违法和不良信息举报中心
- 家长监护
- 中国互联网举报中心
- 网络110报警服务
- Chrome商店下载
- 账号管理规范
- 版权与免责声明
- 版权申诉
- 出版物许可证
- ©1999-2025北京创新乐知网络技术有限公司