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...
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;
}
voilà, je vous remercie d'avance