为何出现“非法操作

时间:2020-10-11 11:14:20 计算机毕业论文 我要投稿

为何出现“非法操作

为何出现“非法操作”

徐淼华

中国科学技术大学少年班9700(230026)

在使用电脑的过程中,尤其是编程的时候,经常会遇到Windows弹出如图所示的对话框,提示软件进行了非法操作:


图:点击了“详细资料”后的对话框

此时如果点击“详细资料”,对话框扩大窗口,给出了寄存器的值,但是一般人看不明白;而如果点击“调试”,它将调用Visual C 或Delphi之类的安装在系统中的编译器,并在编译器中显示程序的汇编码,更是让人头大一圈;若点击“关闭”,则会将内存中的相关数据都丢弃(很多时候这些数据是有用的),非常可惜。

引起Windows弹出此对话框的原因是内存出错。内存质量不好,不稳定,某些数据无端的改变,当然被认为是“非法操作”。这里讨论的是软件特别是自己编写的小程序是如何引起错误的。Windows 9X中,不必关心内存模式、地址转换、64K的代码段和数据段,因为地址和内存都放在线形的32位内存空间中。每个应用程序都可“看见”4GB的线形地址空间,其中最开始的4MB由操作系统保留,剩下的不足2GB的空间属于应用程序私有空间。要强调的`是,在4MB 到2GB之间的非保留空间是完全私有的。每个进程都可有自己私有的地址空间,而且与其他进程的地址空间是完全无关的。利用处理器的页映射能力,操作系统可为每个进程提供独立的从逻辑地址到物理内存(RAM或分页文件)的映射,使一个进程的地址空间对另一个进程完全不可见。编程时,若一个进程(程序)访问了它的地址空间外的地址,Windows 9X就会弹出上述对话框。具体有以下几个原因:

1.数组下标越界

观察以下程序:

#include

【为何出现“非法操作】相关文章:

1.高二孩子为何更容易出现心理问题

2.关于高二孩子为何更容易出现心理问题

3.高二的孩子为何更容易出现心理问题

4.团队为何失败

5.为何会纹眉失败

6.出现骨折如何护理

7.为何男性喜欢稳重女性

8.恋爱为何产生虐待心理

9.创业享优惠为何难