[C con Clase] Redefinir un arreglo dinamico

Fabian Arenas lordjerhyn en gmail.com
Jue Mayo 28 04:49:03 CEST 2009


El día 27 de mayo de 2009 2:00, Jose Cabrera <josmaca en gmail.com> escribió:
> Cuando lo creas tiene lo que podriamos llamar basura, datos que ya
> estuviesen alli antes, puesto que cuando haces el new char[3] el sistema
> reserva sitio para tres char pero no borra nada, si quieres ampliarlo a 4
> tienes que hacer lo siguiente, por ejemplo con una funcion amplia.
>
> amplia( char* pVector){
>   char* aux;
>   int tam = strlen(pVector); //Vemos el tamaño de pVector
>   aux = new char[tam*2]; // Se suele ampliar al doble
>   char caracter = 'a'; //inicializamos a algun valor diferente a \0
>   int i = 0; //contador
>   while( caracter != '\0' && i<tam){
>     caracter = pVector[i];
>     aux[i] = caracter;
>     i++;
>   }
>   delete [] pVector;
>   pVector = aux;

:O ... esto es con strcpy o strncpy de cstring o string.h ....!!!!!!!!!!

> }
>
>
> El 27 de mayo de 2009 2:24, Kalith <kalith en kernelerror.net> escribió:
>>
>> Buenas..
>> Sigo con el tema de la memoria dinámica, veamos, supongo que defino un
>> arreglo de tamaño n
>>
>> char *pVector;
>>
>> pVector = new char[n];
>>
>> suponiendo que n sea 3
>>
>> y ya estan ocupadas las n posiciones del mismo
>>
>> "zzz"
>>
>> si quisiera agregar mas elementos pero conservando los anteriores osea
>> imaginemos que quiera agregar un n+1 elemento y que mi vector quede "zzzz"
>> como lo haria¿?
>>
>> gracias
>>
>> --
>> Seamos realistas y hagamos lo imposible
>> Linux Counter User #487374
>>
>> ---
>> Nosotros los complacientes, guiados por lo desconocido, estamos haciendo
>> lo imposible para los ingratos, y hemos estado haciendo tanto por tanto
>> tiempo con tan poco, que ahora estamos capacitados a hacer cualquier cosa
>> con nada
>>
>> _______________________________________________
>> Lista de correo Cconclase Cconclase en listas.conclase.net
>> http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
>> Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ
>
>
> _______________________________________________
> Lista de correo Cconclase Cconclase en listas.conclase.net
> http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
> Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ
>



-- 
Fabián Arenas L.
Estudiante de Ingeniería en Informática. UTEM
Web: http://eterniosilicio.blogspot.com/
         http://informatica.utem.cl/~farenas
Linux Registered User #476277 - http://counter.li.org/
Si nada te resulta.......Rutea el algoritmo po GIL!!!




Más información sobre la lista de distribución Cconclase