ArrayInitialize
Hàm này khởi tạo một mảng số với một giá trị được đặt trước.
Để khởi tạo một mảng kiểu char
int ArrayInitialize(
char array[], // mảng được khởi tạo
char value // giá trị sẽ được đặt
);
2
3
4
Để khởi tạo một mảng kiểu short
int ArrayInitialize(
short array[], // mảng được khởi tạo
short value // giá trị sẽ được đặt
);
2
3
4
Để khởi tạo một mảng kiểu int
int ArrayInitialize(
int array[], // mảng được khởi tạo
int value // giá trị sẽ được đặt
);
2
3
4
Để khởi tạo một mảng kiểu long
int ArrayInitialize(
long array[], // mảng được khởi tạo
long value // giá trị sẽ được đặt
);
2
3
4
Để khởi tạo một mảng kiểu float
int ArrayInitialize(
float array[], // mảng được khởi tạo
float value // giá trị sẽ được đặt
);
2
3
4
Để khởi tạo một mảng kiểu double
int ArrayInitialize(
double array[], // mảng được khởi tạo
double value // giá trị sẽ được đặt
);
2
3
4
Để khởi tạo một mảng kiểu bool
int ArrayInitialize(
bool array[], // mảng được khởi tạo
bool value // giá trị sẽ được đặt
);
2
3
4
Để khởi tạo một mảng kiểu uint
int ArrayInitialize(
uint array[], // mảng được khởi tạo
uint value // giá trị sẽ được đặt
);
2
3
4
Tham số
array[]
[out] Mảng số cần được khởi tạo.
value
[in] Giá trị mới sẽ được đặt cho tất cả các phần tử của mảng.
Giá trị trả về
Số lượng phần tử đã được khởi tạo.
Ghi chú
Hàm ArrayResize() cho phép đặt kích thước của một mảng với một phần dự trữ để mở rộng thêm mà không cần di dời vật lý bộ nhớ. Nó được triển khai để cải thiện hiệu suất, vì các thao tác di dời bộ nhớ khá chậm.
Việc khởi tạo mảng bằng cách sử dụng ArrayInitialize(array, init_val)
không có nghĩa là khởi tạo cùng giá trị cho các phần tử dự trữ được cấp phát cho mảng này. Khi mở rộng thêm array
bằng hàm ArrayResize()
, các phần tử sẽ được thêm vào cuối mảng, giá trị của chúng sẽ không xác định và trong hầu hết các trường hợp sẽ không bằng init_value
.
Ví dụ:
void OnStart()
{
//--- mảng động
double array[];
//--- đặt kích thước mảng cho 100 phần tử và dự trữ bộ đệm cho thêm 10 phần tử
ArrayResize(array,100,10);
//--- khởi tạo các phần tử mảng với giá trị EMPTY_VALUE=DBL_MAX
ArrayInitialize(array,EMPTY_VALUE);
Print("Giá trị của 10 phần tử cuối cùng sau khi khởi tạo");
for(int i=90;i<100;i++) printf("array[%d] = %G",i,array[i]);
//--- mở rộng mảng thêm 5 phần tử
ArrayResize(array,105);
Print("Giá trị của 10 phần tử cuối cùng sau khi ArrayResize(array,105)");
//--- giá trị của 5 phần tử cuối được lấy từ bộ đệm dự trữ
for(int i=95;i<105;i++) printf("array[%d] = %G",i,array[i]);
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16