Salut tt le monde,
Voilà, je galère grave depuis hier soir sur un truc qui doit pourtant être simple... Je voudrais concaténer un caractère à la suite d'une string. J'ai trouvé pas mal d'exemples, fait des recherches sur le forum mais je me prends toujours des erreurs de segmentation, voilà un ptit condensé de mon code :
Code :
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- main()
- {
- char *myString;
- char myChar;
- char tampon[255];
- // allocation de la mémoire pr le mot "bonjour"
- myString=(char *)malloc(7+1);
- myString = "Bonjour";
- printf ("%s\n", myString);
- // on remplit le tampon
- myChar = 'x';
- tampon[0] = (char) myChar;
- tampon[1] = '\0';
- printf ("%s\n", tampon);
- // reallocation de mémoire pr la concaténation du tampon à myString
- myString=(char *)realloc(myString, strlen(myString) + 1 + strlen(tampon) + 1);
- printf ("%s\n", myString);
- myString = strcat(myString, tampon);
- printf ("%s\n", myString);
- }
|
le résultat :
jerome@hn-48-17:~/railway/parser> ./a.out
Bonjour
x
Erreur de segmentation
jerome@hn-48-17:~/railway/parser>
|
C'est au moment du realloc que tout part en sucette. J'ai essayé plein de différentes manières de faire (différentes tailles pr le reallocetc) mais pas moyen . (à la base le caractère que je veux ajouter dans la string viens d'un fichier et cette string est dans un "tableau de strings" si on peut dire ca comme ca). Mais bon faudrait déjà que je passe ce cap là
Merci d'avoir pris le temps de lire