• [^] # Re: Pourquoi malloc() puis realloc() ?

    Posté par . En réponse au journal Genèse d'un journal. Évalué à 3.

    Avant de proposer une optimisation, lire la page de manuel n'est pas du luxe :

    […]when snprintf() is called with size=0 then SUSv2 stipulates an unspecified
    return value less than 1, while C99 allows str to be NULL in this case, and
    gives the return value (as always) as the number of characters that would
    have been written in case the output string has been large enough.

    Donc 2 spécifications se contredisent sur cette fonction. Autant ne pas faire cette optimisation. De plus dans ton optimisation, tu appelles toujours deux fois snprintf et une fois malloc, alors qu'avec une valeur de départ bien choisie, tu peux être dans le cas où tu appelles le plus souvent une fois snprintf et une fois malloc et uniquement dans les cas spéciaux (voir jamais) appeler deux fois snprintf.

    "It was a bright cold day in April, and the clocks were striking thirteen" - Georges Orwell