SysAdmin wrote:

ok ok Je me suis mal exprimé.
En fait, effectivmeent, ayant réécrit la fonction pour
qu'elle soit lisible (extraite de l'appli, ca ne
l'étais pas), j'ai oublié la somme des 2 longueur.

J'ai également volontairement omis les instruction de
copies de chaine, éétant donné que mon problème se
situe sur REALLOC. En effet c'est cette instruction
qui plante en segmentation fault. Les instruction
d'ajout de chaine ne me posent pas de problème, c'est
simplement l'assignation de la mémoire.

D'autre part, pour des choix de développement, je en
veux pas que ma fonction retourne une pointeur, mais
un int qui dira si la fonction s'est bien déroulée ou
non, a la fonct appelante. Le pointeur chaine_a
pointera sur une chaine de charactère qui aura été
modifiée dans la fonction qui nous concerne


C'est donc bien le realloc (chaine_a, (strlen(chain_a)+strlen(chaine_b));


Je suppose que ta fonction realloc est appelee a l'interieur d'une fonction a toi et qui prend chaine_a et chaine_b en parametre. Dans ce cas, tu devrais passer un pointeur sur le pointeur chaine_a et le dereferencer a l'interieur de la fonction:

int test;
test = append(&chaine_a, chaine_b);

....

int append(char ** pchaine_a, char * chaine_b) {
*pchaine_a = realloc(*pchaine_a, (strlen(*pchaine_a) + strlen(chaine_b));
patati et patata....
}

Code non teste:-)


En esperant t'avoir aide


Frederic



Vous souhaitez acquerir votre Pack ou des Services MandrakeSoft?
Rendez-vous sur "http://www.mandrakestore.com";


Reply via email to