免费注册 查看新帖 |

Chinaunix

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

外部或static变量的生存期长于main()函数? [复制链接]

论坛徽章:
0
41 [报告]
发表于 2010-06-29 18:51 |只看该作者
遇到能写OS的 佩服

论坛徽章:
0
42 [报告]
发表于 2010-06-29 18:55 |只看该作者
本帖最后由 slackware12 于 2010-06-29 18:59 编辑

在  main函数结束后  与  程序交回控制权给操作系统之前  的这段时间中, C运行时库 要进行一些清理工作(例如将最后还存放在buf缓冲区的数据打印到屏幕上)。  但是此时, buf在main函数结束之前已经被释放。

访问一个已经被释放的内存空间, 就是一个非法操作。  

不知道我的看法对不对, 请各位小点力拍砖。

论坛徽章:
0
43 [报告]
发表于 2010-06-29 19:19 |只看该作者
外部或static变量的生存期是程序的整个运行期间。

论坛徽章:
0
44 [报告]
发表于 2010-06-29 20:42 |只看该作者
碰到个写OS的,好运气了

论坛徽章:
0
45 [报告]
发表于 2010-06-29 20:54 |只看该作者
同好运,进来学习下。
main也是个函数,地位和普通函数一样,这样就明白了。

论坛徽章:
0
46 [报告]
发表于 2010-06-29 21:54 |只看该作者
回复 37# ah13k


    太强大啦~佩服佩服~~

论坛徽章:
2
程序设计版块每日发帖之星
日期:2015-06-17 22:20:00每日论坛发贴之星
日期:2015-06-17 22:20:00
47 [报告]
发表于 2010-06-30 07:47 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
2
程序设计版块每日发帖之星
日期:2015-06-17 22:20:00每日论坛发贴之星
日期:2015-06-17 22:20:00
48 [报告]
发表于 2010-06-30 07:49 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
2
程序设计版块每日发帖之星
日期:2015-06-17 22:20:00每日论坛发贴之星
日期:2015-06-17 22:20:00
49 [报告]
发表于 2010-06-30 07:57 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
50 [报告]
发表于 2010-06-30 08:50 |只看该作者
确实,main()并不是汇编的入口,而只是C程序的入口。main()之前之后都做了些事情。
这个例子通过man  setbuf就可以看到,Linux下的文档也说到了,是有问题的。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP