Đối tượng Mảng Động
Mảng Động
Mảng tối đa 4 chiều array
có thể được khai báo. Khi khai báo một mảng động (một mảng có giá trị không xác định trong cặp dấu ngoặc vuông đầu tiên), trình biên dịch tự động tạo một biến của cấu trúc trên (một đối tượng mảng động) và cung cấp mã để khởi tạo chính xác.
Mảng động được tự động giải phóng khi vượt ra ngoài vùng hiển thị của khối mà chúng được khai báo.
Ví dụ:
double matrix[][10][20]; // 3-dimensional dynamic array
ArrayResize(matrix,5); // Set the size of the first dimension
2
Mảng Tĩnh static_array
Khi tất cả các chiều quan trọng của mảng được chỉ định rõ ràng, trình biên dịch sẽ phân bổ trước kích thước bộ nhớ cần thiết. Một mảng như vậy được gọi là tĩnh. Tuy nhiên, trình biên dịch vẫn phân bổ bộ nhớ bổ sung cho đối tượng của mảng động, đối tượng này được liên kết với bộ đệm tĩnh đã được phân bổ trước (phần bộ nhớ để lưu trữ mảng).
Việc tạo một đối tượng mảng động là do nhu cầu có thể truyền mảng tĩnh này như một tham số cho một số hàm.
Ví dụ:
double stat_array[5]; // 1-dimensional static array
some_function(stat_array);
...
bool some_function(double& array[])
{
if(ArrayResize(array,100)<0) return(false);
...
return(true);
}
2
3
4
5
6
7
8
9
Mảng trong Cấu trúc
Khi một mảng tĩnh được khai báo như một thành viên của cấu trúc, một đối tượng mảng động không được tạo ra. Điều này được thực hiện để đảm bảo tính tương thích của các cấu trúc dữ liệu được sử dụng trong Windows API.
Tuy nhiên, các mảng tĩnh được khai báo như thành viên của cấu trúc cũng có thể được truyền vào các hàm MQL5. Trong trường hợp này, khi truyền tham số, một đối tượng tạm thời của mảng động sẽ được tạo ra. Đối tượng như vậy được liên kết với mảng tĩnh - thành viên của cấu trúc.
Xem thêm
Các hàm mảng, Khởi tạo biến, Phạm vi hiển thị và tuổi thọ của biến, Tạo và xóa đối tượng