64位操作系统内存第七版关于内存越界访问的错误

关于内存越界的一个小问题
[问题点数:60分,结帖人mengmingtao]
关于内存越界的一个小问题
[问题点数:60分,结帖人mengmingtao]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
相关帖子推荐:
2012年11月 挨踢职涯大版内专家分月排行榜第二2011年9月 Linux/Unix社区大版内专家分月排行榜第二
2012年1月 Linux/Unix社区大版内专家分月排行榜第三2011年8月 C/C++大版内专家分月排行榜第三2011年8月 Linux/Unix社区大版内专家分月排行榜第三2010年4月 C/C++大版内专家分月排行榜第三
2012年3月 C/C++大版内专家分月排行榜第二2011年11月 C/C++大版内专家分月排行榜第二2010年6月 C/C++大版内专家分月排行榜第二2010年5月 C/C++大版内专家分月排行榜第二
2011年4月 C/C++大版内专家分月排行榜第三2011年2月 C/C++大版内专家分月排行榜第三2010年8月 C/C++大版内专家分月排行榜第三
2012年 总版技术专家分年内排行榜第七
2014年10月 总版技术专家分月排行榜第二2014年6月 总版技术专家分月排行榜第二2014年5月 总版技术专家分月排行榜第二2014年3月 总版技术专家分月排行榜第二2013年5月 总版技术专家分月排行榜第二
本帖子已过去太久远了,不再提供回复功能。新手园地& & & 硬件问题Linux系统管理Linux网络问题Linux环境编程Linux桌面系统国产LinuxBSD& & & BSD文档中心AIX& & & 新手入门& & & AIX文档中心& & & 资源下载& & & Power高级应用& & & IBM存储AS400Solaris& & & Solaris文档中心HP-UX& & & HP文档中心SCO UNIX& & & SCO文档中心互操作专区IRIXTru64 UNIXMac OS X门户网站运维集群和高可用服务器应用监控和防护虚拟化技术架构设计行业应用和管理服务器及硬件技术& & & 服务器资源下载云计算& & & 云计算文档中心& & & 云计算业界& & & 云计算资源下载存储备份& & & 存储文档中心& & & 存储业界& & & 存储资源下载& & & Symantec技术交流区安全技术网络技术& & & 网络技术文档中心C/C++& & & GUI编程& & & Functional编程内核源码& & & 内核问题移动开发& & & 移动开发技术资料ShellPerlJava& & & Java文档中心PHP& & & php文档中心Python& & & Python文档中心RubyCPU与编译器嵌入式开发驱动开发Web开发VoIP开发技术MySQL& & & MySQL文档中心SybaseOraclePostgreSQLDB2Informix数据仓库与数据挖掘NoSQL技术IT业界新闻与评论IT职业生涯& & & 猎头招聘IT图书与评论& & & CU技术图书大系& & & Linux书友会二手交易下载共享Linux文档专区IT培训与认证& & & 培训交流& & & 认证培训清茶斋投资理财运动地带快乐数码摄影& & & 摄影器材& & & 摄影比赛专区IT爱车族旅游天下站务交流版主会议室博客SNS站务交流区CU活动专区& & & Power活动专区& & & 拍卖交流区频道交流区
空间积分0 信誉积分137 UID阅读权限50积分2065帖子精华可用积分2065 专家积分0 在线时间462 小时注册时间最后登录
小富即安, 积分 2065, 距离下一级还需 2935 积分
帖子主题精华可用积分2065 专家积分0 在线时间462 小时注册时间最后登录
论坛徽章:0
本帖最后由 nxlinux 于
18:29 编辑
int main(void){
& & & & char str[1]={0};
& & & & char *str1=&iloveyou&;
& & & & printf(&please a string:&);
& & & & scanf(&%s&,str);
& & & & printf(&%d\n&,strlen(str));
& & & & if(!strcmp(str,str1)){
& & & & & & & & printf(&the same\n&);
& & & & }else{
& & & & & & & & printf(&not the same\n&);
& & & & }
}复制代码这里 str我赋值iloveyou,肯定是越界了, 为什么 str的长度还是8,而且 下面的if判断语句没有执行?
飞游vpn 免费VPN资源.
&&nbsp|&&nbsp&&nbsp|&&nbsp&&nbsp|&&nbsp&&nbsp|&&nbsp
空间积分0 信誉积分1901 UID阅读权限50积分2754帖子精华可用积分2754 专家积分40 在线时间2071 小时注册时间最后登录
小富即安, 积分 2754, 距离下一级还需 2246 积分
帖子主题精华可用积分2754 专家积分40 在线时间2071 小时注册时间最后登录
论坛徽章:4
楼主是来搞笑的吧。
----------------------------------------
我的妞在哪儿.......
痛苦和无聊之间摇摆!
空间积分0 信誉积分137 UID阅读权限50积分2065帖子精华可用积分2065 专家积分0 在线时间462 小时注册时间最后登录
小富即安, 积分 2065, 距离下一级还需 2935 积分
帖子主题精华可用积分2065 专家积分0 在线时间462 小时注册时间最后登录
论坛徽章:0
你从哪里看出来的?
飞游vpn 免费VPN资源.
空间积分0 信誉积分26 UID阅读权限10积分2帖子精华可用积分2 专家积分0 在线时间9 小时注册时间最后登录
白手起家, 积分 2, 距离下一级还需 198 积分
帖子主题精华可用积分2 专家积分0 在线时间9 小时注册时间最后登录
论坛徽章:0
str是在栈上分配的,LZ只申请了1个字节的空间,却向他写了9个字节,这里肯定越界了,超出的部分会覆盖原来栈里的东西(例如程序参数,程序返回地址等等),这一步是悄无声息的但却可以正常执行,所以会输出“the same”,但是由于原来栈里的东西已被覆盖,所以程序返回时会报错!
这是我的理解,欢迎指正!
空间积分0 信誉积分385 UID阅读权限10积分39帖子精华可用积分39 专家积分0 在线时间134 小时注册时间最后登录
白手起家, 积分 39, 距离下一级还需 161 积分
帖子主题精华可用积分39 专家积分0 在线时间134 小时注册时间最后登录
论坛徽章:0
scanf输入流函数的读取操作如果读取到空格符就会停止读入,楼主所操作的读入连续的九个字符,scanf会分配连续空间给这个字符串,所以你后面的比较会是相等,而且读到的长度也是你输入的,但是这样的操作就会不安全。
北京皓辰网域网络信息技术有限公司. 版权所有 京ICP证:060528号 北京市公安局海淀分局网监中心备案编号:
广播电视节目制作经营许可证(京) 字第1234号
中国互联网协会会员&&联系我们:
感谢所有关心和支持过ChinaUnix的朋友们
转载本站内容请注明原作者名及出处Remember Me?
&&&&&&&&&&&&&&
[使用Ctrl+Enter键可以直接提交]
联系Email: kyo86.dai[at]gmail[dot]com
阅读排行榜
评论排行榜

我要回帖

更多关于 越界追踪 的文章

 

随机推荐