Segmentation fault
URK
-
URK -
URK -
Re Bonsoir c'est encore moi :D,
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 :)
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...
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 :)