跳至内容

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]);
  }
最后更新于