Concaténer un char à la suite d'une string - C - Programmation
Marsh Posté le 07-11-2004 à 22:23:18
C'est parce que tu utilises le meme pointeur pour recueillir l'adresse du pointeur vers la nouvelle zone memoire que realloc renvoie ET pour celle que tu lui indiques : myString=(char *)realloc(myString, strlen(myString) + 1 + strlen(tampon) + 1);
Si l'allocation réussi l'ancien pointeur n'est plus utilisable, il faut employer une variable temporaire
Code :
|
Marsh Posté le 07-11-2004 à 22:31:37
Salut manatane, merci de ta réponse. J'avais trouvé une exemple un peu différent qui réutilisait le mêmepointeur et ca marchait.
Enfin, j'ai fait la modif que tu m'as expliqué, mais j'ai toujours une erreur de segmentation au moment du realloc
Marsh Posté le 07-11-2004 à 22:32:06
L'erreur est à la ligne myString = "Bonjour"; myString pointe vers une zone mémoire qui n'a pas été allouée dynamiquement et donc realloc ne peut pas y accéder, il renvoie NULL.
Il faudrait faire : strcpy (myString, "Bonjour" );
Marsh Posté le 07-11-2004 à 23:25:55
ou alors tu te fais plaisir et tu t'aide avec un truc genre glib
Marsh Posté le 07-11-2004 à 23:34:09
yep Taz, j'avais vu que tu en parlais dans un topic du même genre que celui-ci (j'ai gardé le lien sous le coude). Si pour la suite de mon projet c trop galère je testerai ca
Merci
Marsh Posté le 07-11-2004 à 22:00:33
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 :
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