00001 //=========================================================================== 00002 //= arreglo.cc Diciembre de 1999 = 00003 //=-------------------------------------------------------------------------= 00004 //= Definiciones de un arreglo dinamico reutilizable = 00005 //=-------------------------------------------------------------------------= 00006 //= ADVERTENCIA: ESTE SOFTWARE NO ESTA CONCEBIDO NI DISENNADO PARA EL USO = 00007 //= EN EQUIPO DE CONTROL EN LINEA EN ENTORNOS PELIGROSOS QUE REQUIERAN UN = 00008 //= DESEMPENNO LIBRE DE FALLAS, COMO LA OPERACION DE PLANTAS NUCLEARES, = 00009 //= SISTEMAS DE NAVEGACION O COMUNICACION EN AVIONES, TRAFICO AEREO, = 00010 //= EQUIPO MEDICO DEL CUAL DEPENDAN VIDAS HUMANAS O SISTEMAS DE ARMAMENTO, = 00011 //= EN LOS CUALES UNA FALLA EN EL SOFTWARE PUEDA IMPLICAR DIRECTAMENTE LA = 00012 //= MUERTE, DANNOS PERSONALES O DANNOS FISICOS Y/O AMBIENTALES GRAVES = 00013 //= ("ACTIVIDADES DE ALGO RIESGO"). = 00014 //=-------------------------------------------------------------------------= 00015 //= Autor original: Oscar J. Chavarro G. A.K.A. JEDILINK. Copyright (c), = 00016 //= 1997 - 2003, oscarchavarro@hotmail.com = 00017 //= AQUYNZA es software libre, y se rige bajo los terminos de la licencia = 00018 //= LGPL de GNU (http://www.gnu.org). Para mayor informacion respecto a la = 00019 //= licencia de uso, consulte el archivo ./doc/LICENCIA en la distribucion. = 00020 //=========================================================================== 00021 00022 #include "arreglo.h" 00023 #include <stdio.h> 00024 00025 //=========================================================================== 00026 //= Clase parametrica ARREGLO = 00027 //=========================================================================== 00028 00029 //template <class T> 00030 //ARREGLO<T>::~ARREGLO<T>() 00031 //{ 00032 // elim(); 00033 //} 00034 00035 template <class T> BOOLEAN 00036 ARREGLO<T>::anx(T elem) 00037 { 00038 if ( _tam >= max_tam ) { 00039 // Agrego `incremento` valores 00040 Data = (T *)realloc(Data, sizeof(T) * (max_tam + incremento)); 00041 if ( !Data ) { 00042 #if PLATAFORMA != PALM_PALMOS_CODEWARRIOR 00043 fprintf(stderr,"<ARREGLO<T>> ERROR: Ha fallado un anx!\n"); 00044 fflush(stderr); 00045 #endif 00046 return FALSE; 00047 } 00048 max_tam += incremento; 00049 } 00050 Data[_tam] = elem; 00051 _tam++; 00052 return TRUE; 00053 } 00054 00055 template <class T> void 00056 ARREGLO<T>::elim(void) 00057 { 00058 if ( Data ) { 00059 free(Data); 00060 Data = NULL; 00061 _tam = 0; 00062 } 00063 } 00064 00065 //=========================================================================== 00066 //= EOF = 00067 //=========================================================================== 00068