- ArrayBsearch
- ArrayCopy
- ArrayCompare
- ArrayFree
- ArrayGetAsSeries
- ArrayInitialize
- ArrayFill
- ArrayIsDynamic
- ArrayIsSeries
- ArrayMaximum
- ArrayMinimum
- ArrayPrint
- ArrayRange
- ArrayResize
- ArrayInsert
- ArrayRemove
- ArrayReverse
- ArraySetAsSeries
- ArraySize
- ArraySort
- ArraySwap
ArrayResize
函数建立新的第一维大小
int ArrayResize(
|
参量
array[]
[out] 数组变化尺寸
new_size
[in] 第一维度新尺寸
reserve_size=0
[in] 获得存储的分散式大小
返回值
如果执行成功,在数组中改变规格后返回所有元素计数,否则,返回-1,数组不调整大小。
如果ArrayResize() 应用于静态数组,timeseries或指标缓冲区,数组大小保持一致 这些数组将不会被重新分配。在这种情况下,如果new_size<=ArraySize(数组),函数将只会返回 new_size;否则将会返回-1值。
注释
该函数只能应用在 动态数组。应该注意的是您不能改变通过SetIndexBuffer()函数分配的作为指标缓冲区的动态数组的大小。对于指标缓冲区,调整大小的所有操作都通过程序端的运行时间子系统来执行。
数组中的元素总数不能超过 2147483647。
随着频繁的内存分配,推荐使用设置存储以减少物理内存分配数量的第三方参数。后来的ArrayResize所有调用都不能导致重新分配物理内存,只是会在保留内存内改变第一数组维度的大小。应谨记,第三方参数只能在物理内存分配期间使用。例如:
ArrayResize(arr,1000,1000); |
假若这样,内存将被重新分配两次,第一次是输入2000元素循环之前(数组大小将设为1000),第二次是i等于3000.如果我们跳过第三方参数,将会有2000重新分配物理内存,这将使程序减速。
例如:
//+------------------------------------------------------------------+ |
另见