首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

空指针操作,疏失的本质是什么

2013-01-19 
空指针操作,出错的本质是什么?PC的有保护,可能是0地址不在用户态什么的,本质是?而在嵌入式,0地址可能是CPU

空指针操作,出错的本质是什么?
PC的有保护,可能是0地址不在用户态什么的,本质是?
而在嵌入式,0地址可能是CPU第一个运行的地址,读应该是没问题的,但写为什么出错?本质是什么?
我的本意:如何在写0地址出错时打印一些信息!别挂了还找半天~~~~
[解决办法]
每个进程的最前面一段地址,是完全不可访问的,不光是不能写,读也不可以
[解决办法]
本质 是享受自由的前提是必须受到 约束
[解决办法]
只是一种预定义的错误状态,而0又是最好的备选,实际上,0地址是可以转化为函数指针的,在汇编里面。。
[解决办法]
研究问题应该有“层次”概念:
C语言实际上建立在一个抽象的层次上,它没有涉及某一个具体的硬件结构(C语言的宗旨之一就是通用--通用于任何计算机),对NULL而言,只是表示地址范围中的一个特殊点,它不可访问--表示无效地址。
至于它是不是0,0地址处是什么?这就要涉及到具体的计算机硬件结构了,这是另一个层次的问题了。
一个具体的编译器负责NULL与一个具体硬件结构地址的关联。没有记错的话,看看“C的495个问题”
[解决办法]
0地址,呵呵,可以访问的,你所说的那些情况,是由于没有建立页面映射以及特权级别限制造成,哪有访问不了的地方啊,限制你访问而已。

热点排行