ZeroMemory

Die Funktion setzt die Variable auf Null, die ihr per Referenz übertragen wird.

void  ZeroMemory(
   void & variable      // Variable, der Null zugewiesen wird
   );

Parameter

Variable

[in] [out] Als Referenz übergebene Variable, die auf Null gesetzt bzw. mit Null initialisiert werden soll.

Rückgabewert

Keinen Rückgabewert.

Hinweis

Wenn der Funktionsparameter eine Zeichenkette ist, ist dieser Aufruf gleichbedeutend mit der Angabe eines NULL-Wertes für sie.
Für einfache Typen und ihre Arrays und Strukturen/Klassen, die aus solchen Typen bestehen, ist dies eine einfache Nullsetzung.
Für Objekte, die Strings und dynamische Arrays enthalten, wird ZeroMemory() für jedes Mitglied aufgerufen.
Bei allen Arrays, die nicht durch den Modifikator const geschützt sind, werden alle Elemente auf Null gesetzt.
Bei Arrays von komplexen Objekten wird ZeroMemory() für jedes Element aufgerufen.  

ZeroMemory() kann nicht auf Klassen mit geschützten Mitgliedern oder bei Klassenableitungen angewendet werden.

Beispiel:

//+------------------------------------------------------------------+
//| Skript Programm Start Funktion                                   |
//+------------------------------------------------------------------+
void OnStart()
  {
//--- Deklaration und Initialisierung der Zeichenkette
   string str="Test ZeroMemory func";
//--- die Zeile an das Protokoll senden, bevor ZeroMemory() auf sie angewendet wird
   PrintFormat("The line before applying ZeroMemory() to it: '%s'",str);
//--- Rücksetzen der Zeichenkette und Senden des Ergebnisses an das Protokoll
   ZeroMemory(str);
   Print("The same line after applying ZeroMemory() to it: '",str,"'");
  /*
  Ergebnis:
   The line before applying ZeroMemory() to it: 'Test ZeroMemory func'
   The same line after applying ZeroMemory() to it: ''
  */
 
//--- Deklarieren und Initialisieren der Variablen vom Typ int
   int var=123;
//--- die Zeile an das Protokoll senden, bevor ZeroMemory() auf sie angewendet wird
   PrintFormat("\nThe integer variable before applying ZeroMemory() to it: %d",var);
//--- die Variable zurücksetzen und das Ergebnis an das Protokoll senden
   ZeroMemory(var);
   PrintFormat("The same variable after applying ZeroMemory() to it: %d",var);
  /*
  Ergebnis:
   The integer variable before applying ZeroMemory() to it123
   The same variable after applying ZeroMemory() to it0
  */
 
//--- das Array vom Typ int deklarieren und initialisieren
   int arr[]={0,1,2,3,4,5,6,7,8,9};
//--- das Array an das Protokoll senden, bevor ZeroMemory() darauf angewendet wird
   Print("\nThe integer array before applying ZeroMemory() to it:");
   ArrayPrint(arr);
//--- das Array zurücksetzen und das Ergebnis an das Protokoll senden
   ZeroMemory(arr);
   Print("The same array after applying ZeroMemory() to it:");
   ArrayPrint(arr);
  /*
  Ergebnis:
   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
  */
 
//--- eine Struktur mit zwei Feldern - Zeichenkette und Ganzzahl - deklarieren
   struct STest
     {
      string   var_string;
      long     var_long;
     };
//--- das Array STest vom Typ einer Struktur deklarieren und initialisieren
   STest arr_struct[]={ {"0",0}, {"1",1}, {"2",2}, {"3",3} };
//--- das Array an das Protokoll senden, bevor ZeroMemory() darauf angewendet wird
   Print("\nThe array struct before applying ZeroMemory() to it:");
   ArrayPrint(arr_struct);
//--- das Struktur-Array zurücksetzen und das Ergebnis an das Protokoll senden
   ZeroMemory(arr_struct);
   Print("The same array struct after applying ZeroMemory() to it:");
   ArrayPrint(arr_struct);
  /*
  Ergebnis:
   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
  */
  }