Memory

Zootella Messages postés 252 Date d'inscription vendredi 10 juin 2005 Statut Membre Dernière intervention 5 septembre 2006 - 4 juil. 2005 à 17:20
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 - 4 juil. 2005 à 21:55
Hello,



Quelle est la différence entre la fonction CopyMemory et MoveMemory sachant qu'elles deux copient un block mémoire ?



J'ai testé les 2 fonctions et j'obtiens le même résultat, une copie du block mémoire.



Pourquoi 2 fonctions alors ?

6 réponses

cs_poppyto Messages postés 540 Date d'inscription dimanche 29 décembre 2002 Statut Modérateur Dernière intervention 13 mai 2011
4 juil. 2005 à 18:15
CopyMemory = copier-coller
MoveMemory = couper-coller

regarde ce que devient le contenu de ton pointeur source dans le deuxième cas ;)

Stef
http://www.poppyto.net LE site pour les bassistes
0
Zootella Messages postés 252 Date d'inscription vendredi 10 juin 2005 Statut Membre Dernière intervention 5 septembre 2006
4 juil. 2005 à 18:38
Justement MoveMemory ne fait pas un couper-coller mais un copier-coller :



int a = 250;

int b;



MoveMemory(&b, &a, sizeof(a));



Résultat : b 250 mais a 250 aussi..
0
Galmiza Messages postés 573 Date d'inscription samedi 16 novembre 2002 Statut Membre Dernière intervention 9 avril 2008 1
4 juil. 2005 à 20:05
Quand tu liberes un bloc mémoire, les données ne sont pas effacées, ça serait une perte de temps.
0
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
4 juil. 2005 à 20:36
La différence, c'est qu'avec MoveMemory, les deux zones mémoire peuvent se chevaucher
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Zootella Messages postés 252 Date d'inscription vendredi 10 juin 2005 Statut Membre Dernière intervention 5 septembre 2006
4 juil. 2005 à 21:46
c'est à dire vecchio56 ? j'ai pas compris
0
vecchio56 Messages postés 6535 Date d'inscription lundi 16 décembre 2002 Statut Membre Dernière intervention 22 août 2010 14
4 juil. 2005 à 21:55
Par exemple, p pointe vers une zone de 128 octets.

Tu peux faire MoveMemory(p + 4, p, 64), mais pas CopyMemory, car les zones p et p+4 se chevauchent
0
Rejoignez-nous