- ArrayBsearch
- ArrayCopy
- ArrayCompare
- ArrayFree
- ArrayGetAsSeries
- ArrayInitialize
- ArrayFill
- ArrayIsDynamic
- ArrayIsSeries
- ArrayMaximum
- ArrayMinimum
- ArrayPrint
- ArrayRange
- ArrayResize
- ArrayInsert
- ArrayRemove
- ArrayReverse
- ArraySetAsSeries
- ArraySize
- ArraySort
- ArraySwap
- ArrayToFP16
- ArrayToFP8
- ArrayFromFP16
- ArrayFromFP8
ArrayResize
A função define um tamanho novo para a primeira dimensão
int ArrayResize(
|
Parâmetros
array[]
[out] Array para alteração de tamanho.
new_size
[in] Novo tamanho para a primeira dimensão.
reserve_size=0
[in] Tamanho alocado para obter reserva.
Valor do Retorno
Se executado com sucesso, a função retorna a quantidade de todos os elementos contidos no array após a alteração do tamanho, caso contrário, retorna -1, e o tamanho do array não é alterado.
Если ArrayResize() применена к статическому массиву, таймсерии или индикаторному буферу, то размер массива остается прежним такие массивы не могут быть перераспределены. В этом случае если new_size<=ArraySize(array), то функция просто вернет new_size; в противном случае будет возвращено -1.
Observação
A função pode ser aplicada somente para arrays dinâmicos. Deve ser notado que não se pode alterar o tamanho de arrays dinâmicos atribuídos como buffers de indicadores através da função SetIndexBuffer(). Para buffers de indicadores, todas a operações de redimensionamento de tamanho são realizadas pelo subsistema de tempo de execução do terminal.
Total amount of elements in the array cannot exceed 2147483647.
Com uma alocação de memória freqüente, é recomendado usar o terceiro parâmetro que defini um reserva para reduzir o número de alocações físicas de memória. Todas as subseqüentes chamadas de ArrayResize não levam uma realocação física de memória, mas somente alteração do tamanho da primeira dimensão do array dentro da memória reservada. Deve ser lembrado que o terceiro parâmetro será usado somente durante a alocação física de memória. Por exemplo:
ArrayResize(arr,1000,1000);
|
Neste caso a memória será realocada duas vezes, a primeira vez antes de entrar no loop de elemento 3000 (o tamanho do array será definido para 1000), e a segunda vez com i igual a 2000. Se omitisse o terceiro parâmetro, haveria 2000 realocações físicas de memória, que desaceleraria o programa.
Exemplo:
//+------------------------------------------------------------------+
|
Também Veja