• [^] # Re: Un complément...

    Posté par . En réponse au message Questions d'exam. Évalué à 1.

    > Une fonction réentrante alloue un espace distinct pour ses variables locales (en général dans la pile) à chaque appel.
    pas seulement.
    une fonction non-reentrante stock souvent les resultats dans une meme structure . donc si elle est appelée plusieurs fois au meme moment , les resultats peuvent etre ecrasés.

    le fonctions autour de time sont l'exemple le plus frequent et le plus connues :
    struct tm *localtime(const time_t *timep);
    struct tm *localtime_r(const time_t *timep, struct tm *result);

    les _r sont reentrantes car on fournit un pointeur struct tm *result sur une zone memoire alouee pour y stocker le resultat.