标题:关于malloc 的问题
只看楼主
cuixingasd
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:54
专家分:135
注 册:2009-3-24
得分:1 
gcc 里面因为a[9]被设置位0,也就是内存中在数组a之后的一个字的内存被设置为0.gcc编译这段程序是按照地址递减的方式来给变量分配给变量i。此时,本来i的值为10,循环体将不存在的a[10]设置为0,实际上却是将i设置为0,这样就成了死循环。
2009-09-17 20:47
leeco
Rank: 4
等 级:贵宾
威 望:10
帖 子:1026
专家分:177
注 册:2007-5-10
得分:1 
你都知道了有数组越界访问还问。。。看反汇编啊。反汇编可以明确告诉你一切

VS里面设断点,按ALT+8看反汇编
GCC编译时使用/S参数看反汇编 // 说错了,把反字去掉,对GCC来说只是中间代码,不是从可执行文件"反"出来的


[ 本帖最后由 leeco 于 2009-9-20 16:19 编辑 ]
2009-09-20 16:16



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-285620-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.215761 second(s), 7 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved