Section courante

A propos

Section administrative du site

MEMMOVE

Déplacement de mémoire
Langage C string.h

Syntaxe

void *memmove(const void *tampondestination, const void *tamponsource, size_t n);

Paramètres

Nom Description
tampondestination Ce paramètre permet d'indiquer le tampon recevant les données
tamponsource Ce paramètre permet d'indiquer le tampon contenant les données à copier
n Ce paramètre permet d'indiquer la taille du tampon en octets

Description

Cette fonction permet de copier un tampon source dans un tampon de destination de «n» octets.

Algorithme

MODULE MEMMOVE(dest, src, n)
   SI dest < src ou dest ≥ src + n ALORS
      * Si la zone de destination est avant la source ou qu'elles ne se chevauchent, on peut copier de manière directe (comme memcpy)
      BOUCLE POUR i ← 0 JUSQU'A n - 1 FAIRE
         dest[i] ← src[i]
      FIN BOUCLE POUR
   SINON
      * Si la zone de destination chevauche la source, il faut copier en partant de la fin
      BOUCLE POUR i ← n - 1 DESCENDRE JUSQU'A 0 FAIRE
         dest[i] ← src[i]
      FIN BOUCLE POUR
   FIN SI

   RETOURNE dest

Remarques

Exemple

Voici quelques exemples typiques de l'utilisation de cette fonction :

Essayer maintenant !
  1. #include <stdlib.h>
  2. #include <stdio.h>
  3. #include <string.h>
  4.  
  5. int main() {
  6.  char A[12];
  7.  char B[15];
  8.  int I;
  9.  for(I=0; I < 12; I++) {
  10.   A[I] = I;
  11.  }
  12.  memmove(&B,&A,12);
  13.  for(I=0; I < 12; I++) {
  14.   printf("B[%i] = %i\n",I,B[I]);
  15.  }
  16.  return 0;
  17. }

on obtiendra le résultat suivant :

B[0] = 0
B[1] = 1
B[2] = 2
B[3] = 3
B[4] = 4
B[5] = 5
B[6] = 6
B[7] = 7
B[8] = 8
B[9] = 9
B[10] = 10
B[11] = 11

Voir également

Langage de programmation - C - Référence de procédures et fonctions - memcpy
Langage de programmation - C - Référence de procédures et fonctions - memset
Langage de programmation - C++ - Référence de procédures et fonctions - memmove

Références

Langage C, Edition Micro-Application, Gehard Willms, 2001, ISBN: 2-7429-2008-0, page 733.
Borland C++ for Windows 4.0, Library Reference, Edition Borland, 1993, Part # BCP1240WW21772, page 176.

Dernière mise à jour : Mardi, le 28 juillet 2015