Forum Programmation.c aspritnf et realloc

Posté par  .
Étiquettes : aucune
0
15
juin
2007
bonjour,
Je voulais savoir si asprintf reallocais le chaine passer en paramatre si on lui passe une chaine non vide ou si il la remallocais autre part.
Par exemple:
asprintf(buffer, "un exemple");
asprintf(buffer, "%s autre chose", buffer);.
Cela pourait etre util pour eviter les fuite memoire.

Merci
  • # libapr

    Posté par  (site web personnel) . Évalué à 1.

    Si tu cherches un outils pour éviter les débordements et fuites mémoire, je te conseille de jeter un oeil sur la bibliothéque libapr et l'utilisation des pools:

    excellent tutorial:
    http://dev.ariel-networks.com/apr/apr-tutorial/html/apr-tuto(...)

    le site officiel:
    http://apr.apache.org/

    un modeste billet:
    http://breizh-biniou.dyndns.org/serendipity/index.php?/archi(...)
    • [^] # Re: libapr

      Posté par  . Évalué à 1.

      je n'ai pas acces a cette bibliothéque en fait. C'est pour ca que je demande pour asprintf, sinon je vais utiliser asprintf+sprintf et malloquer la a main.
      • [^] # Re: libapr

        Posté par  . Évalué à 3.

        man asprintf

        -> The printf() family of functions produces output according to a format as
        described below. The printf() and vprintf() functions write output to
        stdout, the standard output stream; fprintf() and vfprintf() write output
        to the given output stream; sprintf(), snprintf(), vsprintf(), and
        vsnprintf() write to the character string str; and asprintf() and
        vasprintf() dynamically allocate a new string with malloc(3)

        Il y aura dond réallocation (dynamically allocate a new string with malloc) mais le problème est surtout de savoir si buffer pointera sur le nouvel espace mémoire avant d'avoir traduit le %s ou après ?
        En tout cas, il me semble dangereux (dans la mesure où l'on ne connais pas la réponse à la question ci-dessus) d'utiliser le même pointeur pour la chaîne à lire et pour la nouvelle chaîne

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.