ZeroMemory

Remet à zéro la variable transmise par référence.

void  ZeroMemory(
   void & variable      // variable à réinitialiser
   );

Paramètres

variable

[in] [out] La variable transmise par référence qu'il faut réinitialiser à zéro.

Valeur de Retour

Aucune.

Note

Si le paramètre de la fonction est une chaîne de caractères, cet appel sera équivalent à mettre la valeur  NULL.
Pour les types simples et leurs tableaux, ainsi que les structures/classes comprenant ces types, c'est un simple remise à zéro.
Pour les objets contenant des chaînes de caractères et les tableaux dynamiques, un appel à ZeroMemory() est effectué pour chaque membre.
Pour chaque tableaux non protégés par le modificateur const, la remise à zéro de tous les éléments est faite.
Pour les tableaux des objets complexes, ZeroMemory() est appelée pour chaque élément.

La fonction ZeroMemory() n'est pas employée pour les classes avec des membres  protégés ou l'héritage.

Exemple :

//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//--- déclare et initialise la chaîne de caractères
   string str="Test ZeroMemory func";
//--- envoie la ligne au journal avant de lui appliquer ZeroMemory()
   PrintFormat("The line before applying ZeroMemory() to it: '%s'",str);
//--- réinitialise la chaîne de caractères et envoie le résultat au journal
   ZeroMemory(str);
   Print("The same line after applying ZeroMemory() to it: '",str,"'");
  /*
  Résultat :
   The line before applying ZeroMemory() to it: 'Test ZeroMemory func'
   The same line after applying ZeroMemory() to it: ''
  */
 
//--- déclare et initialise la variable de type int
   int var=123;
//--- envoie la ligne au journal avant de lui appliquer ZeroMemory()
   PrintFormat("\nThe integer variable before applying ZeroMemory() to it: %d",var);
//--- réinitialise la variable et envoie le résultat au journal
   ZeroMemory(var);
   PrintFormat("The same variable after applying ZeroMemory() to it: %d",var);
  /*
  Résultat :
   The integer variable before applying ZeroMemory() to it123
   The same variable after applying ZeroMemory() to it0
  */
 
//--- déclare et initialise le tableau de type int
   int arr[]={0,1,2,3,4,5,6,7,8,9};
//--- envoie le tableau au journal avant de lui appliquer ZeroMemory()
   Print("\nThe integer array before applying ZeroMemory() to it:");
   ArrayPrint(arr);
//--- réinitialise le tableau et envoie le résultat au journal
   ZeroMemory(arr);
   Print("The same array after applying ZeroMemory() to it:");
   ArrayPrint(arr);
  /*
  Résultat :
   The integer array before applying ZeroMemory() to it:
   0 1 2 3 4 5 6 7 8 9
   The same array after applying ZeroMemory() to it:
   0 0 0 0 0 0 0 0 0 0
  */
 
//--- déclare une structure de deux champs - des chaînes et des entiers
   struct STest
     {
      string   var_string;
      long     var_long;
     };
//--- déclare et initialise le tableau de type structure STest
   STest arr_struct[]={ {"0",0}, {"1",1}, {"2",2}, {"3",3} };
//--- envoie le tableau au journal avant de lui appliquer ZeroMemory()
   Print("\nThe array struct before applying ZeroMemory() to it:");
   ArrayPrint(arr_struct);
//--- réinitialise le tableau de structure et envoie le résultat au journal
   ZeroMemory(arr_struct);
   Print("The same array struct after applying ZeroMemory() to it:");
   ArrayPrint(arr_struct);
  /*
  Résultat :
   The array struct before applying ZeroMemory() to it:
       [var_string] [var_long]
   [0"0"                   0
   [1"1"                   1
   [2"2"                   2
   [3"3"                   3
   The same array struct after applying ZeroMemory() to it:
       [var_string] [var_long]
   [0null                  0
   [1null                  0
   [2null                  0
   [3null                  0
  */
  }