Bonsoir,
voilà je dois faire un script qui accepte des messages entré par l'utilisateur dans un tableau lorsque celui sera rempli il s'allongera en qq sorte.
Seulement lors de l'ajout d'un message il me met Segmentation fault !
Voici le code en question, je ne met pas ma main il envoit juste la chaine de caractère à ma fonction Add...
voilà, je vous remercie d'avance
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
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40 void gmAdd(char *pMsg, int *pRC) { /* Si le tableau est rempli ajout d'un nouveau bloc de n bit => réallocation Si réallocation OK, on poursuis pour l'ajout de l'élément */ if ((gCurrentPos % BLOCK) == 0) { // modulo entre la position courante et le nombre de block if ((slc_tab = (char**) realloc(slc_tab, (gCurrentPos + BLOCK) * sizeof (char*))) == NULL) { *pRC = GM_ERROR; puts("Realloc Failed"); return; } } /* Placement dans slc_tab[gCurrentPos] l'adresse réservé pour le char Vérification si l'allocdation mémoire c'est bien passé => <> NULL */ if ((slc_tab[gCurrentPos] = (char*) malloc((strlen(pMsg) + 1) * sizeof (char))) == NULL) // +1 pour message avec le \0 // On Cast le malloc en disant que c'est de type char { puts("Alloc Char Failed"); *pRC = GM_ERROR; return; } /* Copie du message dans le tableau Incrémentation de la position courante */ strcpy(slc_tab[gCurrentPos],pMsg); // ICI OU SE PASSE L' ERREUR !!!!!! gCurrentPos++; *pRC = GM_OK; }![]()
Partager