ZeroMemory
Hàm đặt lại một biến được truyền vào nó bằng tham chiếu.
void ZeroMemory(
void & variable // biến cần đặt lại
);
2
3
Tham số
variable
[truyền vào] [truyền ra] Biến được truyền bằng tham chiếu, bạn muốn đặt lại (khởi tạo bằng giá trị 0).
Giá trị trả về
Không có giá trị trả về.
Ghi chú
Nếu tham số của hàm là một chuỗi, việc gọi hàm sẽ tương đương với việc gán giá trị NULL
cho nó.
Đối với các kiểu đơn giản và mảng của chúng, cũng như các cấu trúc/lớp bao gồm các kiểu này, đây là một phép đặt lại đơn giản.
Đối với các đối tượng chứa chuỗi và mảng động, ZeroMemory()
được gọi cho từng phần tử.
Đối với bất kỳ mảng nào không được bảo vệ bởi sửa đổi const
, đây là việc đặt tất cả các phần tử về 0.
Đối với mảng của các đối tượng phức tạp, ZeroMemory()
được gọi cho từng phần tử.ZeroMemory()
không thể áp dụng cho các lớp có thành viên được bảo vệ hoặc kế thừa được bảo vệ.
Ví dụ:
//+------------------------------------------------------------------+
//| Hàm bắt đầu chương trình Script |
//+------------------------------------------------------------------+
void OnStart()
{
//--- khai báo và khởi tạo chuỗi
string str="Test ZeroMemory func";
//--- gửi chuỗi vào nhật ký trước khi áp dụng ZeroMemory()
PrintFormat("Chuỗi trước khi áp dụng ZeroMemory(): '%s'",str);
//--- đặt lại chuỗi và gửi kết quả vào nhật ký
ZeroMemory(str);
Print("Chuỗi sau khi áp dụng ZeroMemory(): '",str,"'");
/*
Kết quả:
Chuỗi trước khi áp dụng ZeroMemory(): 'Test ZeroMemory func'
Chuỗi sau khi áp dụng ZeroMemory(): ''
*/
//--- khai báo và khởi tạo biến kiểu int
int var=123;
//--- gửi biến vào nhật ký trước khi áp dụng ZeroMemory()
PrintFormat("\nBiến số nguyên trước khi áp dụng ZeroMemory(): %d",var);
//--- đặt lại biến và gửi kết quả vào nhật ký
ZeroMemory(var);
PrintFormat("Biến sau khi áp dụng ZeroMemory(): %d",var);
/*
Kết quả:
Biến số nguyên trước khi áp dụng ZeroMemory(): 123
Biến sau khi áp dụng ZeroMemory(): 0
*/
//--- khai báo và khởi tạo mảng kiểu int
int arr[]={0,1,2,3,4,5,6,7,8,9};
//--- gửi mảng vào nhật ký trước khi áp dụng ZeroMemory()
Print("\nMảng số nguyên trước khi áp dụng ZeroMemory():");
ArrayPrint(arr);
//--- đặt lại mảng và gửi kết quả vào nhật ký
ZeroMemory(arr);
Print("Mảng sau khi áp dụng ZeroMemory():");
ArrayPrint(arr);
/*
Kết quả:
Mảng số nguyên trước khi áp dụng ZeroMemory():
0 1 2 3 4 5 6 7 8 9
Mảng sau khi áp dụng ZeroMemory():
0 0 0 0 0 0 0 0 0 0
*/
//--- khai báo cấu trúc với hai trường - chuỗi và số nguyên
struct STest
{
string var_string;
long var_long;
};
//--- khai báo và khởi tạo mảng kiểu cấu trúc STest
STest arr_struct[]={ {"0",0}, {"1",1}, {"2",2}, {"3",3} };
//--- gửi mảng vào nhật ký trước khi áp dụng ZeroMemory()
Print("\nMảng cấu trúc trước khi áp dụng ZeroMemory():");
ArrayPrint(arr_struct);
//--- đặt lại mảng cấu trúc và gửi kết quả vào nhật ký
ZeroMemory(arr_struct);
Print("Mảng cấu trúc sau khi áp dụng ZeroMemory():");
ArrayPrint(arr_struct);
/*
Kết quả:
Mảng cấu trúc trước khi áp dụng ZeroMemory():
[var_string] [var_long]
[0] "0" 0
[1] "1" 1
[2] "2" 2
[3] "3" 3
Mảng cấu trúc sau khi áp dụng ZeroMemory():
[var_string] [var_long]
[0] null 0
[1] null 0
[2] null 0
[3] null 0
*/
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79