Resize

Establece un tamaño nuevo, más pequeño, del array.

bool  Resize(
   int  size      // Tamaño
   )

Parámetros

size

[in] Tamaño nuevo del array.

Valor devuelto

true si se ejecuta correctamente, false - si se intenta establecer un tamaño menor a cero.

Nota

Cambiar el tamaño del array permite utilizar la memoria de manera óptima. Se pierden los elementos situados a la derecha. La memoria de los elementos perdidos se puede liberar o no, dependiendo del modo de gestión de memoria.

Para reducir la fragmentación de la memoria, el cambio de tamaño del array se lleva a cabo en un paso previo por medio del método Step (int), o 16 (predeterminado).

Ejemplo:

//--- ejemplo de CArrayObj::Resize(int)
#include <Arrays\ArrayObj.mqh>
//---
void OnStart()
  {
   CArrayObj *array=new CArrayObj;
   //---
   if(array==NULL)
     {
      printf("Error en la creación del objeto");
      return;
     }
   //--- añade elementos al array
   //--- . . .
   //--- cambia el tamaño del array
   if(!array.Resize(10))
     {
      printf("Error al cambiar de tamaño");
      delete array;
      return;
     }
   //--- borra el array
   delete array;
  }