AddArray
Añade al final del array los elementos de otro array.
bool AddArray(
const CArrayObj * src array
)
|
Parámetros
src
[in] Puntero a una instancia de la clase CArrayDouble que contiene los elementos fuente que se desean añadir.
Valor devuelto
Nota
//--- ejemplo
extern bool make_error;
extern int error;
extern CArrayObj *src;
//--- Crear una nueva instancia de CArrayObj
//--- La gestión predeterminada de la memoria está activada
CArrayObj *array=new CArrayObj;
//--- Añadir (copiar) los elementos del array fuente
if(array!=NULL)
bool result=array.AddArray(src);
if(make_error)
{
//--- Realizar las acciones de los errores
switch(error)
{
case 0:
//--- Borrar el array fuente, sin comprobar su bandera de gestión de memoria
delete src;
//--- Resultado:
//--- Se puede direccionar un elemento con un puntero no válido del array receptor
break;
case 1:
//--- Desactiva el mecanismo de gestión de memoria del array fuente
if(src.FreeMode()) src.FreeMode(false);
//--- Sin eliminar el array fuente
//--- Resultado:
//--- Después de borrar el array receptor se puede direccionar un elemento con un puntero no válido del array fuente
break;
case 2:
//--- Desactiva el mecanismo de gestión de memoria del array fuente
src.FreeMode(false);
//--- Desactiva el mecanismo de gestión de memoria del array receptor
array.FreeMode(false);
//--- Resultado:
//--- Después de terminar el programa se obtiene una "pérdida de memoria"
break;
}
}
else
{
//--- Desactiva el mecanismo de gestión de memoria del array fuente
if(src.FreeMode()) src.FreeMode(false);
//--- Borra el array fuente
delete src;
//--- Resultado:
//--- Direccionar el elemento del array receptor será correcto
//--- Borrar el array receptor implicará borrar sus elementos
}
|
Ejemplo:
//--- ejemplo de CArrayObj::AddArray(const CArrayObj*)
#include <Arrays\ArrayObj.mqh>
//---
void OnStart()
{
CArrayObj *array=new CArrayObj;
//---
if(array==NULL)
{
printf("Error en la creación del objeto");
return;
}
//--- crea el array fuente
CArrayObj *src=new CArrayObj;
if(src==NULL)
{
printf("Error en la creación del objeto");
delete array;
return;
}
//--- reiniciar la bandera
src.FreeMode(false);
//--- llenar el array fuente
//--- . . .
//--- añade otro array
if(!array.AddArray(src))
{
printf("Error al añadir el array");
delete src;
delete array;
return;
}
//--- borrar el array fuente sin elementos
delete src;
//--- utiliza el array
//--- . . .
//--- borra el array
delete array;
}
|