Re: Question c

Page principale

Répondre à ce message
Auteur: Edgar Bonet
Date:  
À: guilde
Sujet: Re: Question c
Le dimanche 22 juin, Yves Martin a écrit :
> Donc je pense qu'il te manque l'info suivante:
>  realloc == 
>    malloc (nouvelle taille)
>    + copie du contenu du pointeur original
>    + free (ancien pointeur)


realloc() ne fait pas forcément une copie. Il esaye d'abord d'allouer
l'espace qui se trouve juste derrière le bloc original et, s'il échoue,
il fait comme tu dis.

> Si on a besoin provisoirement de grand volume mémoire, il faut utiliser
> mmap "anonymous" pour éviter cette fragmentation qui peut s'avérer
> problèmatique pour une processus dont la durée serait importante.


malloc() fait exactement ça quand on lui demande une grande taille. Pour
les petites tailles il alloue dans le tas. Mais je ne sais pas où est la
limite de « grand ».

Ciao,

Edgar.