保存桌面快捷方式 - - 设为首页 - 手机版
凹丫丫旗下网站:四字成语大全 - 故事大全 - 范文大全
您现在的位置: 范文大全 >> 理工论文 >> 计算机信息技术 >> 正文

为何出现“非法操作



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

 

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

引起Windows弹出此对话框的原因是内存出错。内存质量不好,不稳定,某些数据无端的改变,当然被认为是“非法操作”。这里讨论的是软件特别是自己编写的小程序是如何引起错误的。Windows 9X中,不必关心内存模式、地址转换、64K的代码段和数据段,因为地址和内存都放在线形的

32位内存空间中。每个应用程序都可“看见”4GB的线形地址空间,其中最开始的4MB由操作系统保留,剩下的不足2GB的空间属于应用程序私有空间。要强调的是,在4MB 2GB之间的非保留空间是完全私有的。每个进程都可有自己私有的地址空间,而且与其他进程的地址空间是完全无关的。利用处理器的页映射能力,操作系统可为每个进程提供独立的从逻辑地址到物理内存(RAM或分页文件)的映射,使一个进程的地址空间对另一个进程完全不可见。编程时,若一个进程(程序)访问了它的地址空间外的地址,Windows 9X就会弹出上述对话框。具体有以下几个原因:

1.数组下标越界

观察以下程序:

#include<stdio.h>

void main()

{

    int a[5];

   

《为何出现“非法操作(第2页)》
本文链接地址:http://www.oyaya.net/fanwen/view/142123.html

★温馨提示:你可以返回到 计算机信息技术 也可以利用本站页顶的站内搜索功能查找你想要的文章。