ArrayInitialize
ArrayInitialize
该函数通过预设值初始化数值数组。
对于char类型的数组初始化
int ArrayInitialize(
char array[], // initialized array
char value // value that will be set
);对于short类型的数组初始化
int ArrayInitialize(
short array[], // initialized array
short value // value that will be set
);对于int类型的数组初始化
int ArrayInitialize(
int array[], // initialized array
int value // value that will be set
);对于long类型的数组初始化
int ArrayInitialize(
long array[], // initialized array
long value // value that will be set
);对于float类型的数组初始化
int ArrayInitialize(
float array[], // initialized array
float value // value that will be set
);对于double类型的数组初始化
int ArrayInitialize(
double array[], // initialized array
double value // value that will be set
);对于bool类型的数组初始化
int ArrayInitialize(
bool array[], // initialized array
bool value // value that will be set
);对于uint类型的数组初始化
int ArrayInitialize(
uint array[], // initialized array
uint value // value that will be set
);参数
- array[]
[输出] 需要初始化的数值数组。
- value
[输入] 应设置到所有数组元素的新值。
返回值
无返回值。
注意
ArrayResize() 函数允许通过预留空间来设置数组的大小,以便将来扩展,而无需物理重新分配内存。这是为了提高性能而实现的,因为内存重新分配的操作相当缓慢。
使用 ArrayInitialize(array, init_val) 初始化数组并不意味着用为该数组分配的保留元素的相同值进行初始化。当使用 ArrayResize() 函数进一步扩展数组时,元素将添加到数组的末尾,它们的值将是未定义的,在大多数情况下不会等于 init_value。
示例:
void OnStart()
{
//--- dynamic array
double array[];
//--- let's set the array size for 100 elements and reserve a buffer for another 10 elements
ArrayResize(array,100,10);
//--- initialize the array elements with EMPTY_VALUE=DBL_MAX value
ArrayInitialize(array,EMPTY_VALUE);
Print("Values of 10 last elements after initialization");
for(int i=90;i<100;i++) printf("array[%d] = %G",i,array[i]);
//--- expand the array by 5 elements
ArrayResize(array,105);
Print("Values of 10 last elements after ArrayResize(array,105)");
//--- values of 5 last elements are obtained from reserve buffer
for(int i=95;i<105;i++) printf("array[%d] = %G",i,array[i]);
}最后更新于