2012-07-23 2 views
0

i = 0 및 j = 2 인 경우 Segmentation Fault를 얻습니다. 하지만 그 이유는 모르겠다!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

정말, 트리플 포인터이어야한다 ???? 오 이런 왜? –

+4

@TonyTheLion이 다시 읽습니다. 별표가 4 개 있습니다. –

+0

분명히 이것을 구현하는 더 효율적인 방법이 있으며 너무 많은 불필요한 괄호가 있지만 malloc이 NULL을 반환하지 않으면 왜 잘못 될지 알 수 없습니다. – ams

답변

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

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

당신은 i++모두 루프 문을 가지고!