• [^] # Re: Reallocation sans free ?

    Posté par . En réponse au message ma j'galère sur un simple free sur un string. Évalué à 3.

    Si size vaut 0 alors result est égal à null

    Peut-être, mais c'est la valeur de result qui est importante, c'est lui la clef - et le résulat- des allocations. Dîtes vous que c'est (ou ça devrait être ) l'inverse:

    • Si result est NULL alors size vaut 0.

    et le calloc reste essentiel !

    Et non !

    si result est NULL:

    • calloc(len+1,1) == malloc(len+1)== realloc(*result,len+1)

    Et, je le répète:

    • sizeof(char) vaut 1, quoiqu'il arrive. C'est le même la seule taille de type qui soit garantie.
    • N'utilisez donc pas calloc mais malloc.
    • ptr=realloc(NULL,size) est équivalent à ptr=malloc(size)

    Man realloc:

    If ptr is NULL, the realloc function behaves
    identically to malloc for the specified size