Segmentation FAULT
wachbaik
Messages postés
60
Statut
Membre
-
Pacorabanix Messages postés 4122 Date d'inscription Statut Membre Dernière intervention -
Pacorabanix Messages postés 4122 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
j'essaye de faire un petit programme pour faire un tableau avec de pointeurs en C et j'ai une SEGMENTATION FAULT au niveau indiqué dans le code ci-dessous .
je ne comprend pas pourquoi.les affichages intermediaires à l'interieur des boucles lors de la saisit de données fonctionnent.
il y a juste le tablePtr qui plante.à la fin si quelqu'un peut m'aider.
.
char *** ptrTable;
printf(" ligne : %d colonne : %d ",LIG , COL);
ptrTable=(char***)malloc((LIG+1)*sizeof(char**)))==NULL ;
int i,j;
char** baladeurLIG=*ptrTable;
char* baladeurCOL;
printf("\n");
for(i=0;i<LIG;i++){
if((baladeurLIG=(char**)(malloc((COL+1)*sizeof(char*))))==NULL){
printf("MALLOC ERROR");
exit(-1);
}
baladeurCOL=*baladeurLIG ;
for(j=0;j<COL;j++){
printf("Entrez Donnée %d :",j);
if((ptrChar=fgets(ligne,1024,stdin))!=NULL){
if((baladeurCOL=(char*)malloc((strlen(ptrChar)+1)*sizeof(char)))==NULL){
printf("MALLOC ERROR");
exit(-1);
}
printf("1-\t%s",baladeurCOL);
strncpy(baladeurCOL,ptrChar,strlen(ptrChar));
printf("2-\t%s",baladeurCOL);
}
baladeurCOL++;
}
baladeurLIG++;
}
printf(" %p , %s ",ptrTable,**ptrTable); ====>quand j'ajoute cette ligne j'ai une segmentation fault
//baladeurLIG = *ptrTable;
printf("**** AFFICHAGE DU TABLEAU *****");
j'essaye de faire un petit programme pour faire un tableau avec de pointeurs en C et j'ai une SEGMENTATION FAULT au niveau indiqué dans le code ci-dessous .
je ne comprend pas pourquoi.les affichages intermediaires à l'interieur des boucles lors de la saisit de données fonctionnent.
il y a juste le tablePtr qui plante.à la fin si quelqu'un peut m'aider.
.
char *** ptrTable;
printf(" ligne : %d colonne : %d ",LIG , COL);
ptrTable=(char***)malloc((LIG+1)*sizeof(char**)))==NULL ;
int i,j;
char** baladeurLIG=*ptrTable;
char* baladeurCOL;
printf("\n");
for(i=0;i<LIG;i++){
if((baladeurLIG=(char**)(malloc((COL+1)*sizeof(char*))))==NULL){
printf("MALLOC ERROR");
exit(-1);
}
baladeurCOL=*baladeurLIG ;
for(j=0;j<COL;j++){
printf("Entrez Donnée %d :",j);
if((ptrChar=fgets(ligne,1024,stdin))!=NULL){
if((baladeurCOL=(char*)malloc((strlen(ptrChar)+1)*sizeof(char)))==NULL){
printf("MALLOC ERROR");
exit(-1);
}
printf("1-\t%s",baladeurCOL);
strncpy(baladeurCOL,ptrChar,strlen(ptrChar));
printf("2-\t%s",baladeurCOL);
}
baladeurCOL++;
}
baladeurLIG++;
}
printf(" %p , %s ",ptrTable,**ptrTable); ====>quand j'ajoute cette ligne j'ai une segmentation fault
//baladeurLIG = *ptrTable;
printf("**** AFFICHAGE DU TABLEAU *****");
3 réponses
ton code est difficilement lisible... peux-tu éditer ton message en mettant les balises < code > ? (bouton à droite de gras, italique, souligné)
j'ai beaucoup de mal en outre à comprendre ce que tu veux vraiment faire avec cette ligne :
ptrTable=(char***)malloc((LIG+1)*sizeof(char**)))==NULL ;
ptrTable=(char***)malloc((LIG+1)*sizeof(char**)))==NULL ;