<delect id="sj01t"></delect>
  1. <em id="sj01t"><label id="sj01t"></label></em>
  2. <div id="sj01t"></div>
    1. <em id="sj01t"></em>

            <div id="sj01t"></div>

            為何出現“非法操作

            時間: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

            <delect id="sj01t"></delect>
            1. <em id="sj01t"><label id="sj01t"></label></em>
            2. <div id="sj01t"></div>
              1. <em id="sj01t"></em>

                      <div id="sj01t"></div>
                      黄色视频在线观看