C記憶體錯誤問題,C記憶體問題

發布 科技 2024-07-10
14個回答
  1. 匿名使用者2024-01-30

    b 是應指向有意義的位址的指標,例如:

    int c;

    int *b = &c;

    就是這樣。

    或者分配動態儲存。

    #include

    int *b;

    b=(int*)malloc(sizeof(int));

    free(b);使用後記得鬆開,放在返回0的前面。

  2. 匿名使用者2024-01-29

    4: int main()

    00401010 push ebp

    00401011 mov ebp,esp

    00401013 sub esp,48h

    00401016 push ebx

    00401017 push esi

    00401018 push edi

    00401019 lea edi,[ebp-48h]

    0040101c mov ecx,12h

    00401021 mov eax,0cccccccch

    00401026 rep stos dword ptr [edi]

    6: int a,*b = 0;

    00401028 mov dword ptr [EBP-8] 中,0 函式的第二個整數被分配乙個值 0,即指標 p 的值。

    8: scanf("%d%d",&a,b);

    0040102f mov eax,dword ptr [ebp-8] 放置 ebp-8,即堆疊頂部的值偏移兩個位元組,即 p。

    該值將分配給 EAX 暫存器。

    00401032 push eax

    00401033 lea ecx,[ebp-4]

    00401036 push ecx

    00401037 push offset string "%d%d" (00425024)

    0040103c call scanf (00401110)

    00401041 add esp,0ch

    9: printf("%d,%d",a,*b);

    00401044 mov edx, dword ptr [EBP-8] 將指標 P 的值分配給 edx 暫存器,我們可以在這裡看到。

    將 0 分配給 edx

    00401047 mov eax,這是 dword ptr [edx] 的問題所在; 我們試圖將位址作為 edx 的值。

    取四個位元組並將其分配給 EAX,其中 EDX 為 0,即無效。 位置。

  3. 匿名使用者2024-01-28

    你有沒有想過為什麼作業系統會在你的電腦開機時自動載入? 計算機啟動 BIOS 或其他東西將從指定的硬碟位址開始載入程式,並且您的 B 指標指向系統的這種位址。 如果這些可以被覆蓋,則您的計算機將無法啟動。

    這種型別的位址是唯讀的。 您可以單獨使用這些位址的內容,但不能重寫它們。

  4. 匿名使用者2024-01-27

    b 不分配記憶體,不能直接使用。

  5. 匿名使用者2024-01-26

    b 是指向無效位址的指標。

    為此,請執行以下操作:int* b = null;

    if(b = malloc(sizeof(int)))return -1;

    scanf("%d",b);

  6. 匿名使用者2024-01-25

    C C++ 編譯的程式占用的記憶體分為以下幾個部分:

    1. Stack — 由編譯器自動賦值和釋放,儲存函式的引數值和區域性變數的值。

    等。 它的行為類似於資料結構中的堆疊。

    2.堆區(HEAP)——一般由程式設計師指派發布,如果程式設計師不發布,程式可能會結束。

    由 OS** 提供。 請注意,它與資料結構中的堆不是一回事,它像鍊表一樣分布,呵呵。

    3. 全域性面積(靜態面積)(靜態)- 將全域性變數和靜態變數的儲存放在一起。

    發起的全域性變數和靜態變數位於同一區域,未初始化的全域性變數和未初始化的靜態變數。

    變數位於另乙個相鄰區域。 - 程式結束後有乙個系統版本。

    4. 文字常量區域 - 常量字串放置在此處。 程式結束後,系統會釋放。

    5. 程式區 - 函式體的二進位檔案。

    所以你說的 1 是不正確的。

    2 文字常量區域和**區域是獨立的,**區域儲存編譯的文字常量區域並儲存字串常量。

    例如,char *p="123455";那麼這個“12345”就放在文字常量區域,這個區域是不能修改的,p指向的內容是不能修改的。

    3malloc 應用程式和新應用程式位於同一位置,稱為堆區域,也稱為可用儲存區域。

    4 馬洛克等

    5.解釋被構造的變數,如果不需要位址,編譯器會對其進行優化,並在變數出現的地方將其替換為常量,如const a=3;

    後跟 b=a+b; 編譯器直接處理到 .

    b=3+b;

  7. 匿名使用者2024-01-24

    1.你是對的,在程式開始執行時分配記憶體,在程式結束時釋放記憶體。

    2.文字常量區域和程式區域通常是只讀儲存器。

    應用程式在堆上,由程式設計師分配和釋放,如果程式設計師不釋放它,作業系統將在程式結束時收回它。

    和 new 都在堆上請求記憶體。

    由編譯器決定常量是否分配記憶體。

  8. 匿名使用者2024-01-23

    將出現記憶不謙虛**。

  9. 匿名使用者2024-01-22

    我給你8種除錯方法!

    1.去網際網絡**乙個“讀修復工具”修橋,遊戲就可以玩了(注意,檢查和殺死病毒和木馬,網際網絡上有“讀工具”,有病毒和木馬)!

    2.如果電腦有木馬或病毒干擾,**“360安防衛士”和“360防毒雙引擎版”,建議對病毒和木馬進行“掃瞄”,修補電腦上的漏洞!

    3.您的“裝置”或“聊天軟體”或“Internet Explorer”或“遊戲”程式不穩定,或“版本太舊”! 建議解除安裝、**新建,或公升級到“最新版本”!

    4.也就是說,您安裝了兩個或兩個以上的類似軟體(例如:兩個**裝置、兩個QQ,或多個瀏覽器、多個防毒軟體、多個網路遊戲等)! 它們不“相容”在一起,刪除“冗餘”的!

    5.如何解除安裝:您可以在計算機左下角的“開始”選單中找到“從計算機強制解除安裝軟體”,並找到多餘的軟體進行解除安裝! 卸貨後,“強力清洗”!

    或者“360安全衛士”、“軟體管理器”,點選,第4項:“軟體解除安裝”,點選,找到“冗餘”和“類似”軟體解除安裝! 如:

    點選,離開“雷霆”,然後解除安裝“快遞”! (看到就解除安裝,不要解除安裝有用的)!

    6.如果以上方法都不起作用,請開啟“360保安”和“特洛伊木馬殺”:“360系統信使急救箱”!

    網路修復“,開始修復,重啟電腦!

    7.沒有了,開始選單,執行,輸入cmd,按回車鍵,在命令提示符下輸入(複製它):

    for %1 in (%windir%\system32\*.dll) do /s %1

    貼上,按回車鍵,然後重新啟動計算機,直到螢幕滾動停止!

    8.如果做不到,請重新安裝遊戲,或恢復系統! 或者重新安裝系統!

  10. 匿名使用者2024-01-21

    可以適當地將記憶體電壓提高一點,就好像威剛的電壓與其他品牌不同一樣

  11. 匿名使用者2024-01-20

    記憶體無法讀取的問題是乙個非常複雜的問題,造成它的原因有很多,包括硬體和軟體,一時難以弄清楚。 即使對於那些整天玩電腦的老手來說,這也是乙個非常熱門的問題,所以我的總體主張是,只要不經常出現,就可以忽略它,點選“確定”或“取消”。 如果它真的經常發生,你可以嘗試找出原因:

    1.記憶體模組損壞或與主機板不相容 更換記憶體模組。

    2.雙記憶體不相容 使用相同品牌的記憶體或僅使用乙個記憶體。

    3.記憶體質量問題 更換記憶體模組。

    4.散熱問題 增強機箱內部的散熱。

    5.記憶體和主機板未正確插入或其他硬體不相容 重新插入記憶體或更換插槽。

    6.硬碟有問題 更換硬碟。

    7.驅動程式問題 重新安裝驅動程式,如果是新系統,則應先安裝主機板驅動程式。

    8.軟體損壞 重新安裝軟體。

    9.該軟體有錯誤需要修補或更新到最新版本。

    10 軟體和系統不相容 修補軟體或嘗試系統的相容模式。

    11 軟體與軟體之間的衝突 如果您最近安裝了任何新軟體,請嘗試解除安裝它。

    13 病毒問題防病毒。

    14 防毒軟體與系統或軟體衝突 由於防毒軟體進入底層監控系統,可能會與某些軟體衝突,因此請嘗試解除安裝。

    15 系統本身有問題 有時候作業系統本身也會有bug,注意安裝官方發布的更新,比如SP補丁,最好放一下。 如果這不起作用,請重新安裝系統,或將其替換為其他版本的系統。

    16 現在網上有一種流行的“解決記憶體無法讀取的小軟體”,你可以在上面搜尋一下,它很容易找到,你不妨試試。 我也有這個軟體儲存在網盤上,但是我覺得它其實很有限,說不定是針對的。dll檔案丟失時很有用(為了避免廣告嫌疑,這裡就不顯示鏈結位址了,希望大家見諒)。

    最後,我想笑著強調,並不是所有的電腦通話關鍵問題都能被普通人理解,即使上面的方法已經嘗試過了,也沒有人能保證他們一定能解決你的問題,因為電腦問題確實很複雜,“看不懂”這只是乙個症狀, 而且這個小症狀很難一下子找到問題。我們都希望當褲鏈出現問題時,我們能馬上得到滿足,有時候是不可能的,要慢慢探索才能知道問題所在。 如果你想儲存你的思想,也許只有最後兩個技巧是最有用的:

    一種是忽略它(反正沒關係),另一種是重新安裝穩定的系統(建議使用原來的XP系統盤)。

  12. 匿名使用者2024-01-19

    問彎太陽的問題很難解決,就像我樓上說的一樣,這些都是合適的褲子,但是你把技術人員叫過來還是不是很清楚,然後說你的系統和這個遊戲不接受,所以建議房東直接重新安裝。

  13. 匿名使用者2024-01-18

    程式寫入以保護記憶體區域。

    出現此類問題的最大可能性是機器被木馬擊中了,請殺掉所有病毒; 如果問題仍然存在,也可能是系統檔案已損壞,需要重新安裝系統。

  14. 匿名使用者2024-01-17

    你好! 電腦出現:【記憶體無法讀寫】,原因比較複雜,請開對藥!

    1。配置錯誤! 【重啟,電腦品牌出來後,按F8,安全模式,上次正確配置,回車,回車】!

    2。系統漏洞! 【360保安或金山衛士,或健牛免費防毒,維修:高風險重要,其他忽略】!

    3。軟體衝突! 【解除安裝不常用軟體,保持系統穩定,尤其是同型別軟體,不相容】!

    4。軟體版本已過時! [使用:(驅動器壽命),更新:顯示卡驅動程式,聲音驅動程式! 其他軟體,覆蓋安裝]!

    5。病毒木馬! 【防毒軟體,全掃自定義掃瞄,完成後,隔離,完全刪除】!

    6。差評外掛程式! 【Keniu 免費防毒軟體、金山衛士、360 保安、清理差評外掛程式】!

    7。可疑的初創公司! 【360系統急救包,啟動急救,檔案恢復區,完全刪除檔案】!

    8。系統檔案損壞! 【金山急救包】,擴充套件掃瞄,立即掃瞄,立即處理,重啟電腦]!

    10。指令修復方法! 開始選單,執行,輸入cmd,按回車鍵,在命令提示符下輸入(複製就足夠了):

    for %1 in (%windir%\system32\*.ocx) do regsvr32 /s %1

    貼上,按回車鍵,完成滾動後,再次鍵入:

    for %1 in (%windir%\system32\*.dll) do /s %1

    進入! 在螢幕滾動停止之前,請重新啟動計算機!

相關回答
18個回答2024-07-10

此函式用於開啟指定檔案的預定義流:標準輸入、標準輸出或標準錯誤。 >>>More

11個回答2024-07-10

事實上,這是沒有辦法做到的。 只要想在函式內部動態請求記憶體,在函式外部使用,就必然會有這樣的矛盾。 >>>More

14個回答2024-07-10

int a=3,b=;

第一 IFIF(a>b) a=b; c=a; >>>More

18個回答2024-07-10

………童鞋:你搞砸了你的指標。

首先,填充功能確實設定了您分配給它的所有空間'\0',但指標 p 不再指向您分配的空間,而是指向記憶體中“堆”的頂部; 然後,func 2 再次將其向上移動,按 num 位和位元組移動它,此時它指向 **? 反正不是你想要的地方。 將它指向的記憶體設定為'\0',則 strlen 應該得到 0,後面跟著 blank 將沒有任何輸出。 >>>More

9個回答2024-07-10

建議你把 cheng 的這個函式寫得更簡單一些。 >>>More