loser 發問時間: 電腦與網際網路程式設計 · 1 0 年前

VC程式執行丟出例外處理0xC0000005

VC程式執行丟出例外處理

First-chance exception in a.exe: 0xC0000005: Access Violation.

請問要怎麼解決呢?

這代表什麼?

if( (abs(a[j+i] - b[j+i+c]) ) <10)

死在這一行,請問一下是我檔案太大的關係嗎

我有二十幾萬筆的資料

能不能跟我說一下 我MFC不熟,不知該如何排除

1 個解答

評分
  • Lv 7
    1 0 年前
    最佳解答

    有可能.你這問題,據我所知,只有一種可能.就是你在讀取不屬於你的記憶體.這是初學者常遇到的問題.程式在此行出問題if( (abs(a[j+i] - b[j+i+c]) ) < 10)a[]和b[]都是陣列.你一定是觸碰到a[]或b[]陣列以外的地方.例:#include <iostream>using namespace std;int main(){    int a[10];    //執行到這裡也會發生0xC0000005: Access Violation.    cout << a[10000] << endl;     return(0);}這裡的a[]是個有10個整數的陣列.但我卻想讀取在a[]裡第10001個整數.所以出錯.若要解決此問題.1. 查看a[]和b[]的大小2. 檢查j+i是否有可能超出a[]的大小3. 檢查j+i+c是否有可能超出a[]的大小我想你在執行程式時是按F5來執行的吧.若是你應可在左下角看到i,j,和c的值.這些值加起來一定超出a[]和b[]的大小解決方法有好幾個.最簡單的是把a[]和b[]變大.懂不懂?不懂請再問

    參考資料: Myself
還有問題?馬上發問,尋求解答。