2016-04-03 38 views
-5

我該如何解決這個問題,我的程序運行良好,但valgrind一直告訴我,我犯了錯誤。valgrind無效寫入大小4

代碼 enter image description here

錯誤 enter image description here

我無法弄清楚什麼是錯線104和11

+0

_「尋求調試幫助的問題(」爲什麼這個代碼不工作?「)必須包含所需的行爲,特定的問題或錯誤以及在問題本身中重現問題所需的最短代碼。語句對其他讀者沒有用,請參閱:如何創建** [MCVE] **。「_ –

+0

使用'new []'退出並使用'std :: vector'。 – PaulMcKenzie

回答

0

如果您粘貼代碼會更容易些(帶不錯的縮進)而不是一張圖片。無論哪種方式,問題似乎是你正在遞減j從for循環。

for(int j=v[z]-1;j>=0;j--) { 
    for (int g=max_el;g > 0;g--) { // secondary problem. 
     p[k][j] = g; 
     j--;    // This is the problem. 
    } 
} 

也許這反而:

for(int j=v[z]-1;j>=0;j--) { 
    int g=max_el; 
    p[k][j] = g; 
    --g; 
} 

很難說沒有數據,但它看起來像你沒有考慮限制Ĵ遞減Ĵ必須> = 0。你當然可以嘗試調試這使用調試器,但我懷疑,簡單地打印索引,當你循環瀏覽會照亮一些問題。