免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12
最近访问板块 发新帖
楼主: youzj326
打印 上一主题 下一主题

[C] malloc遇到的问题,请大家帮助了 [复制链接]

论坛徽章:
9
摩羯座
日期:2013-08-15 15:18:48狮子座
日期:2013-09-12 18:07:47金牛座
日期:2013-09-16 13:23:09辰龙
日期:2013-10-09 09:03:27白羊座
日期:2013-10-17 13:32:44子鼠
日期:2014-04-23 15:09:38戌狗
日期:2014-09-17 11:37:542015年亚洲杯之韩国
日期:2015-03-26 10:16:442015亚冠之武里南联
日期:2015-08-18 14:55:52
11 [报告]
发表于 2009-09-17 13:44 |只看该作者
这与C/C++运行库自身实现有关,跟操作系统没关系,同一系统用不同的编译器也可能得到不同的结果。
如果试图从这个上面找到什么规律并利用之,那么或许现在用你当前的这个编译器不会出现问题,不过同时你也要为以后编译器版本升级或者换其他编译器所可能带来的各种BUG作好心理准备。

论坛徽章:
0
12 [报告]
发表于 2009-09-17 13:49 |只看该作者
对阿,我的机子上的结果也是这样的,就前四个字节也就是32位机子一个字长的字节被填上了‘\0’,其他的都没变化,等待中啊。。。

论坛徽章:
0
13 [报告]
发表于 2009-09-17 14:48 |只看该作者
这种问题真的没有必要去深究
不然就成孔乙己了
你真要深究去看glibc的源代码好了,看看里面的malloc是怎么实现的不就完了

论坛徽章:
0
14 [报告]
发表于 2009-09-17 15:03 |只看该作者

回复 #13 churchmice 的帖子

说实话也只能这样了,只是感到很好奇,有时间真得从源码里面找答案了。。。

论坛徽章:
0
15 [报告]
发表于 2009-09-17 15:23 |只看该作者
看了下uclibc的代码,说是C标准,但是在标准里没找到,估计是让下一次malloc的时候第一个数据类型恰好是0,而通常一个数据类型的大小是4个字节.

论坛徽章:
0
16 [报告]
发表于 2009-09-17 16:35 |只看该作者

回复 #15 epegasus 的帖子

总之这个问题也就这样了,呵呵 反正是好奇心嘛,正常写程序谁也不会这么做吧 嘿嘿

论坛徽章:
0
17 [报告]
发表于 2009-09-17 22:27 |只看该作者
原帖由 epegasus 于 2009-9-17 15:23 发表
看了下uclibc的代码,说是C标准,但是在标准里没找到,估计是让下一次malloc的时候第一个数据类型恰好是0,而通常一个数据类型的大小是4个字节.


如果是这样,性能会受到影响。
按个人所想,那也是全局变量做的事情。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP