Bonjour, j'ai une erreur de segmentation avec mon module EnsembleChaine que je n'arrive pas à résoudre depuis plusieurs heures. Mon module stocke des chaînes de caractère dans un tableau.
Voici ma structure et mon constructeur qui pose problème :
J'ai une erreur de segmentation sur cette ligne :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 struct EnsembleChaine { char** s; int nb; }; EnsembleChaine creerEnsembleChaine(void) { EnsembleChaine this; this->s=malloc(sizeof(char*)*SIZE_DEFAULT); for(int i=0;i<SIZE_DEFAULT;i++) { this->s[i]=malloc(sizeof(char)*SIZE_DEFAULT); for(int j=0;j<SIZE_DEFAULT;j++) { this->s[i][j]='\0'; } } this->nb=0; return this; }
Pourtant, pour moi tout est correct. J'ai enlevé la boucle for comme ceci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part this->s[i][j]='\0';
Et ça fonctionne ! Pourtant quand je laisse la boucle for vide comme ceci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 EnsembleChaine creerEnsembleChaine(void) { EnsembleChaine this; this->s=malloc(sizeof(char*)*SIZE_DEFAULT); for(int i=0;i<SIZE_DEFAULT;i++) { this->s[i]=malloc(sizeof(char)*SIZE_DEFAULT); //for(int j=0;j<SIZE_DEFAULT;j++) //{ //this->s[i][j]='\0'; //} } this->nb=0; return this; }
Ça ne fonctionne plus et ça me déplace l'erreur de segmentation ici :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 EnsembleChaine creerEnsembleChaine(void) { EnsembleChaine this; this->s=malloc(sizeof(char*)*SIZE_DEFAULT); for(int i=0;i<SIZE_DEFAULT;i++) { this->s[i]=malloc(sizeof(char)*SIZE_DEFAULT); for(int j=0;j<SIZE_DEFAULT;j++) { //this->s[i][j]='\0'; } } this->nb=0; return this; }
Du coup, je ne comprends pas ce qui ne va pas. En espérant une aide de votre part, car là j'en peux plus... Merci.
Code : Sélectionner tout - Visualiser dans une fenêtre à part this->s[i]=malloc(sizeof(char)*SIZE_DEFAULT);
Partager