2012-07-23 39 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++循环语句!