----- Original Message -----
From: "SysAdmin" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Tuesday, November 19, 2002 3:28 PM
Subject: Re: [Confirme] petite question C


> 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));
>
> qui me pose pb.

La r�ponse est donc que realloc retourne le pointeur sur la zone reallou�e
qui n'est pas forc�ment celle de d�part. Il faut donc que tu fasses un truc
du genre pour que chaine_a soit un param�tre r�sultat

int append (char ** chaine_a, const char * chaine_n)
{
        *chaine_a = realloc (*chaine_a,
(strlen(*chain_a)+strlen(chaine_b));



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

Répondre à