| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 486 人关注过本帖
标题:C 的malloc函数,是在不懂下面这个程序为何不报错??
只看楼主 加入收藏
wenwanle
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2012-2-21
结帖率:0
收藏
已结贴  问题点数:20 回复次数:5 
C 的malloc函数,是在不懂下面这个程序为何不报错??
这个我真不明白,请各位指教!!!



int *p;
p=(int*)malloc(sizeof(int));//p point to a int size space
for(int i=0;i<100;i++)
{
p[i]=i;
printf("%3d",p[i]);//why the p[2]~p[99] also run regularly?

}
malloc不是开辟了固定长度(一个int大小)的空间吗,怎么p[2]--p[99]还能正常运行呢?按说只有p[0]才对吧?
谁能告诉我怎么回事,谢谢了!!
搜索更多相关主题的帖子: 函数 
2012-02-21 14:29
闲出屁
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:7
帖 子:420
专家分:612
注 册:2012-1-24
收藏
得分:5 
程序代码:
    int *p;
    p=(int*)malloc(sizeof(int));
    for(int i=0;i<100;i++)
    {
        p[i]=i;
        printf("%3d",p[i]);
    }
    int *p2;
    p2=(int*)malloc(sizeof(int));
p2为NULL

乔布斯是神 宫崎骏也是神~~ 才知道 原来士兵突击的主题曲是久石让的 久石让的音乐 真传神
2012-02-21 14:35
cnfarer
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:179
帖 子:3330
专家分:21157
注 册:2010-1-19
收藏
得分:5 
C并不检查数组下界!

★★★★★为人民服务★★★★★
2012-02-21 14:51
zhangqi_gsts
Rank: 6Rank: 6
来 自:甘肃天水
等 级:侠之大者
威 望:1
帖 子:227
专家分:457
注 册:2011-3-27
收藏
得分:5 
只能说明一点,你的p内存后面至少还有99*sizeof(int)个内存单元,所有报错的条件就是p后的内存恰好已被占
2012-02-21 15:34
icysky
Rank: 5Rank: 5
来 自:心灵世界
等 级:职业侠客
威 望:1
帖 子:172
专家分:399
注 册:2011-5-17
收藏
得分:5 
发奖金呢!老板扔过来1个亿   
然后说   小张:你今年的年终奖是10万,然后老板离开了!
小张拿走了100万或者更多!

不管怎么走、总有一个终点...
2012-02-21 15:41
闲出屁
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:7
帖 子:420
专家分:612
注 册:2012-1-24
收藏
得分:0 
http://tech.
http://www.
2楼的问题 没太研究明白怎么回事儿
以后慢慢深入的看吧

乔布斯是神 宫崎骏也是神~~ 才知道 原来士兵突击的主题曲是久石让的 久石让的音乐 真传神
2012-02-21 16:24
快速回复:C 的malloc函数,是在不懂下面这个程序为何不报错??
数据加载中...
 
   



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

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