scanf函数 导致内存溢出
来源:互联网 发布:mac rvm 安装ruby 编辑:程序博客网 时间:2024/04/27 19:22
int main(){ int dataCount,i; //标记有几组测试数据,定义循环变量 char dataInput[3];//!~!!这里分配空间过小 //存储每组测试数据 //char dataOutput[3]; //存储每组运算结果 scanf("%d",&dataCount); //主循环,对每一组数据进行处理 for (i = 0; i < dataCount; i++) { scanf("%s", dataInput); //!!这里实际上相当于给i覆0 bubbleSort(dataInput, 3); printf("%c %c %c\n", dataInput[0], dataInput[1], dataInput[2]); } return 0;}
由于dataInput数组分配3个字节(过小),scanf函数没有限制输入的字节数
而当用户属于一个3个字符的字符串时(如zxc),实际上包含的结束符/0 实际占用空间为4
此时dataInput溢出一个字节,覆盖了在datainput变量前面定义的i (内存栈中)
程序运行的结果是,for循环不停的延续,不会中断(因为i变量被不停覆0)
- scanf函数 导致内存溢出
- substring 导致内存溢出
- 递归导致内存溢出
- quartz定时器导致内存溢出
- jxl导致内存的溢出
- 内存泄露导致的内存溢出
- 内存泄露导致的内存溢出
- 内存泄漏导致内存溢出(OOM)
- "除零会导致内存溢出"
- 反复使用大数组导致内存溢出?
- iframe导致浏览器内存溢出的解决方法
- Runtime.getRuntime().exec 导致的内存溢出
- 多线程导致内存溢出。什么原因?
- android中Bitmap导致的内存溢出
- 集群间同步导致的内存溢出
- 解决Bitmap导致的内存溢出问题
- java-subString方法易导致内存溢出
- tmocat 内存溢出导致电脑卡顿
- HTTP详解
- Android实现安装和卸载APK
- 关于SKYPE
- linux shell 用sed命令在文本的行尾或行首添加字符
- WebService从零到项目开发使用1—技术研究之基础篇 XML
- scanf函数 导致内存溢出
- C#学习笔记——多维数组与交错数组的区别
- 亚洲首富六十年来的感悟,与大家共勉之!
- TicTacToe(井字棋)的算法——不比人的智商低的AI
- 组合查询
- 播放Android视频文件
- 基于模板测试实现半透明多边形运算
- 面试杂谈(二)
- WEB架构师成长之路-架构师都要懂哪些知识