当前位置: 技术问答>linux和unix
系统是如何判断指针非法的?
来源: 互联网 发布时间:2016-04-11
本文导语: 有时候指针指向了一个错误的地址会导致程序直接退出,有时候会直接使用指向内存的内容(虽然不是你想要的),但程序可以得以继续运行。系统是怎么决定使用非法指会后进程是退出还是不退出的。 问题比较菜...
有时候指针指向了一个错误的地址会导致程序直接退出,有时候会直接使用指向内存的内容(虽然不是你想要的),但程序可以得以继续运行。系统是怎么决定使用非法指会后进程是退出还是不退出的。
问题比较菜,希望大虾指点
问题比较菜,希望大虾指点
|
这个,应该和操作系统有关了吧,现代操作系统都提供保护模式的.
内核空间的数据用户空间的程序不可以随便访问,反之,可以.
内核空间的数据用户空间的程序不可以随便访问,反之,可以.
|
某些系统好像有地址非法异常
|
都是指向的错误的地址
如果那段地址里有你需要的重要的数据
比如说程序地址之类的,那程序运行下去肯定必挂
如果程序可以继续运行的话那就更糟了
肯定会在将来出现什么诡异的意想不到的错误的
所以尽量避免这种情况的发生
如果那段地址里有你需要的重要的数据
比如说程序地址之类的,那程序运行下去肯定必挂
如果程序可以继续运行的话那就更糟了
肯定会在将来出现什么诡异的意想不到的错误的
所以尽量避免这种情况的发生
|
对,这跟系统访问权限机制有关,一般而言进程的核心空间是不可访问的,一旦试图访问这些空间进程肯定马上中止。
而对其他空间的错误访问一般不会被立即中止。比如char *p因为未初始化而指向了int b。
而对其他空间的错误访问一般不会被立即中止。比如char *p因为未初始化而指向了int b。