2012-07-23 84 views
0

當i = 0且j = 2時,我獲得了分割錯誤; 但我不知道爲什麼!由void函數分配3d陣列

你能幫我嗎?

這是我的功能:

void allocationdynamiquetableautroisdimdentier(int**** Matrice,int nbniveau, int nbligne, int nbcolonne) 
{ 
int i,j; 
    *Matrice=(int***) malloc (sizeof(int**)*nbniveau); 
    for (i=0; i<nbniveau; i++) 
    { 
     (*(Matrice))[i]=(int**) malloc (sizeof(int*)*nbligne); // allocation dynamique de la matrice Matrice 
     for (j=0; j<nbligne; i++) 
     { 
      ((*(Matrice))[i])[j]=(int*) malloc (sizeof(int)*nbcolonne); 
     } 
    } 

} 
+2

三重指針,真的????哦,上帝爲什麼? – 2012-07-23 16:09:29

+4

@TonyTheLion再次閱讀。有4個星號。 – 2012-07-23 16:10:48

+0

確實有更高效的方法來實現這一點,並且有太多不必要的括號,但我不明白爲什麼它會出錯,除非malloc返回NULL。 – ams 2012-07-23 16:12:17

回答

3
 for (j=0; j<nbligne; i++) 

應該

 for (j=0; j<nbligne; j++) 
2

i++循環語句!