ZeroMemory

Функция обнуляет переменную, переданную ей по ссылке.

void  ZeroMemory(
   void & variable      // обнуляемая переменная
   );

Параметры

variable

[in] [out] Переменная, передаваемая по ссылке, которую требуется обнулить (инициализировать нулевыми значениями).

Возвращаемое значение

Нет возвращаемого значения.

Примечание

Если параметром функции является строка, то данный вызов будет эквивалентен указанию для нее значения NULL.
Для простых типов и их массивов, а также структур/классов, состоящих из таких типов, это простое обнуление.
Для объектов, содержащих строки и динамические массивы, производится вызов ZeroMemory() для каждого члена.
Для любых массивов, не защищенных модификатором const, производится обнуление всех элементов.
Для массивов сложных объектов происходит вызов ZeroMemory() для каждого элемента.

Функция ZeroMemory() не применима для классов с защищенными членами или наследованием.

Пример:

//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//--- объявляем и инициализируем строку
   string str="Test ZeroMemory func";
//--- выведем в журнал строку до применения к ней ZeroMemory()
   PrintFormat("The line before applying ZeroMemory() to it: '%s'",str);
//--- обнулим строку и выведем в журнал результат
   ZeroMemory(str);
   Print("The same line after applying ZeroMemory() to it: '",str,"'");
/*
   Результат:
   The line before applying ZeroMemory() to it: 'Test ZeroMemory func'
   The same line after applying ZeroMemory() to it: ''
*/
 
//--- объявляем и инициализируем переменную с типом int
   int var=123;
//--- выведем в журнал строку до применения к ней ZeroMemory()
   PrintFormat("\nThe integer variable before applying ZeroMemory() to it: %d",var);
//--- обнулим переменную и выведем в журнал результат
   ZeroMemory(var);
   PrintFormat("The same variable after applying ZeroMemory() to it: %d",var);
/*
   Результат:
   The integer variable before applying ZeroMemory() to it123
   The same variable after applying ZeroMemory() to it0
*/
 
//--- объявляем и инициализируем массив с типом int
   int arr[]={0,1,2,3,4,5,6,7,8,9};
//--- выведем в журнал массив до применения к нему ZeroMemory()
   Print("\nThe integer array before applying ZeroMemory() to it:");
   ArrayPrint(arr);
//--- обнулим массив и выведем в журнал результат
   ZeroMemory(arr);
   Print("The same array after applying ZeroMemory() to it:");
   ArrayPrint(arr);
/*
   Результат:
   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
*/
 
//--- объявляем структуру из двух полей - строкового и целочисленного
   struct STest
     {
      string   var_string;
      long     var_long;
     };
//--- объявляем и инициализируем массив с типом структуры STest
   STest arr_struct[]={ {"0",0}, {"1",1}, {"2",2}, {"3",3} };
//--- выведем в журнал массив структур до применения к нему ZeroMemory()
   Print("\nThe array struct before applying ZeroMemory() to it:");
   ArrayPrint(arr_struct);
//--- обнулим массив структур и выведем в журнал результат
   ZeroMemory(arr_struct);
   Print("The same array struct after applying ZeroMemory() to it:");
   ArrayPrint(arr_struct);
/*
   Результат:
   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
*/
  }