• <nav id="cwumo"><code id="cwumo"></code></nav>
  • <menu id="cwumo"><strong id="cwumo"></strong></menu>

    為何出現“非法操作

    時間:2024-08-10 15:13:46 計算機畢業論文 我要投稿
    • 相關推薦

    為何出現“非法操作

    為何出現“非法操作”

    徐淼華

    中國科學技術大學少年班9700(230026)

    在使用電腦的過程中,尤其是編程的時候,經常會遇到Windows彈出如圖所示的對話框,提示軟件進行了非法操作:


    圖:點擊了“詳細資料”后的對話框

    此時如果點擊“詳細資料”,對話框擴大窗口,給出了寄存器的值,但是一般人看不明白;而如果點擊“調試”,它將調用Visual C 或Delphi之類的安裝在系統中的編譯器,并在編譯器中顯示程序的匯編碼,更是讓人頭大一圈;若點擊“關閉”,則會將內存中的相關數據都丟棄(很多時候這些數據是有用的),非常可惜。

    引起Windows彈出此對話框的原因是內存出錯。內存質量不好,不穩定,某些數據無端的改變,當然被認為是“非法操作”。這里討論的是軟件特別是自己編寫的小程序是如何引起錯誤的。Windows 9X中,不必關心內存模式、地址轉換、64K的代碼段和數據段,因為地址和內存都放在線形的32位內存空間中。每個應用程序都可“看見”4GB的線形地址空間,其中最開始的4MB由操作系統保留,剩下的不足2GB的空間屬于應用程序私有空間。要強調的是,在4MB 到2GB之間的非保留空間是完全私有的。每個進程都可有自己私有的地址空間,而且與其他進程的地址空間是完全無關的。利用處理器的頁映射能力,操作系統可為每個進程提供獨立的從邏輯地址到物理內存(RAM或分頁文件)的映射,使一個進程的地址空間對另一個進程完全不可見。編程時,若一個進程(程序)訪問了它的地址空間外的地址,Windows 9X就會彈出上述對話框。具體有以下幾個原因:

    1.數組下標越界

    觀察以下程序:

    #include

    【為何出現“非法操作】相關文章:

    聯想的薪酬為何依然神秘?03-20

    “哲學”為何在古希臘誕生01-16

    職教培訓:為何“春風難綠”?11-30

    論文答辯易出現的不足12-11

    談談日常交際中出現的誤區03-18

    獨立董事退出現象研究03-24

    探討如何應對強化造影出現的問題03-18

    聲音過亮出現的原因是什么?03-28

    淺析旅游管理專業實習出現問題及對策01-05

    論信用卡為何被消費者“卡”在門外11-14

    日韩激情