Re: Question de c/c++

Page principale

Répondre à ce message
Auteur: Yves Gufflet
Date:  
À: guilde
Sujet: Re: Question de c/c++
> Yves Gufflet a écrit :
>> memmove est capable de gérer des chevauchement de données.
>> et elle doit utiliser un buffer temporaire pour le faire.
> Il y a peu de chances : ce serait terriblement inefficace.


Je cite :

"Cette fonction permet de copier un bloc de mémoire spécifié par le
paramètre source dans un nouvel emplacement désigné par le paramètre
destination. On peut donc dire que cette fonction est proche de la
fonction memcpy. Néanmoins, la différence réside dans le fait que la
fonction memmove accepte que les deux zones de mémoire puissent se
chevaucher.

En cas de chevauchement, la copie se passe comme si les octets de la
zone source étaient d'abord copiés dans une zone temporaire, qui ne
chevauche aucune des deux zones pointées par source et destination, et
les octets sont ensuite copiés de la zone temporaire vers la zone de
destination."

source : https://koor.fr/C/cstring/memmove.wp


> Et même si
> elle le faisait, ne pas libérer ce tampon mémoire serait un sérieux
> bogue de la libc.


Je suis d'accord.


> À+,
>
> Edgar.
>