Section courante

A propos

Section administrative du site

MEMSET

Fixe la mémoire
Langage C string.h

Syntaxe

void *memset(const void *tampon, int caractere, size_t n);

Paramètres

Nom Description
tampon Ce paramètre permet d'indiquer le tampon à traiter
caractere Ce paramètre permet d'indiquer le caractère à copier
n Ce paramètre permet d'indiquer la taille du tampon en octets

Description

Cette fonction permet de rechercher un caractère dans le tampon de «n» octets.

Algorithme

MODULE MEMSET(ptr, value, n)
   * Remplir les n premiers octets de ptr avec la valeur donnée
   BOUCLE POUR i ← 0 JUSQU'A n - 1 FAIRE
      * Affecter la valeur à chaque octet de la zone mémoire
      ptr[i] ← value
   FIN BOUCLE POUR

   * Retourner le pointeur vers la zone mémoire modifiée
   RETOURNE ptr

Remarques

Exemple

Voici un exemple permettant d'initialiser tous les valeurs d'une structure de données rapidement :

Essayer maintenant !
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4.  
  5. int main()
  6. {
  7.     struct {
  8.         double X1;
  9.         double Y1;
  10.         double X2;
  11.         double Y2;
  12.         char titre[255];
  13.     } coord;
  14.     memset(&coord,0,sizeof(coord));
  15.     printf("X1 = %f\n",coord.X1);
  16.     printf("Y1 = %f\n",coord.Y1);
  17.     printf("X2 = %f\n",coord.X2);
  18.     printf("Y2 = %f\n",coord.Y2);
  19.     printf("titre = %s\n",coord.titre);
  20.     return 0;
  21. }

on obtiendra le résultat suivant :

X1 = 0.000000
Y1 = 0.000000
X2 = 0.000000
Y2 = 0.000000
titre =

Cet exemple permet de répéter le caractère astérix 50 fois :

Essayer maintenant !
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4.  
  5. int main()
  6. {
  7.     char DuplicateString[255];
  8.     memset(&DuplicateString,'*',50);
  9.     DuplicateString[50] = 0;
  10.     printf("DuplicateString = %s\n",DuplicateString);
  11.     return 0;
  12. }

on obtiendra le résultat suivant :

DuplicateString = **************************************************

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

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 177.

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