Foros del Web » Programación para mayores de 30 ;) » C/C++ »

y si necesito mas memoria?

Estas en el tema de y si necesito mas memoria? en el foro de C/C++ en Foros del Web. Hola gente.. Bueno me surge esta pregunta, imaginemos que tengo un arreglo que cree dinamicamente por ejemplo de 11 elementos arreglo = new char[11] ok ...
  #1 (permalink)  
Antiguo 22/05/2009, 04:45
 
Fecha de Ingreso: octubre-2008
Mensajes: 50
Antigüedad: 15 años, 6 meses
Puntos: 2
y si necesito mas memoria?

Hola gente..

Bueno me surge esta pregunta, imaginemos que tengo un arreglo que cree dinamicamente por ejemplo de 11 elementos

arreglo = new char[11]

ok en ese arreglo tengo la cadena

"aaabbbccc"

mas el caracterer '\0'

imaginemos que necesitara adicionar a ese elemento mas caracteres pero ya defini como que tiene 11 imaginen que debo agregar un elemento mas para que quede

"aaabbbcccd"

que deberia hacer?

gracias
  #2 (permalink)  
Antiguo 22/05/2009, 09:00
 
Fecha de Ingreso: mayo-2008
Ubicación: Chile
Mensajes: 189
Antigüedad: 16 años
Puntos: 3
Respuesta: y si necesito mas memoria?

Para eso estan las cadenas indefinidas de caracteres, yo creo que lo mas facil seria usar una variable string.
  #3 (permalink)  
Antiguo 22/05/2009, 10:27
 
Fecha de Ingreso: octubre-2008
Mensajes: 50
Antigüedad: 15 años, 6 meses
Puntos: 2
Respuesta: y si necesito mas memoria?

yo se que lo mejor sería usar la std::string pero es solo un planteo hipotetico, puesto se me presento la curiosidad y no se como hacerlo.
  #4 (permalink)  
Antiguo 24/05/2009, 09:50
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 1 mes
Puntos: 1360
Respuesta: y si necesito mas memoria?

C style
Puedes crear una estructura de datos llamada lista, y que vaya insertando los caracteres que le vayas poniendo.

haces tu lista y le vas poniendo
while ( ( c = getchar() ) != '\n')
lista_append(&puntero_de_la_lista, c);

Y mas o menos así es como me imagino que se implementa un string xD
  #5 (permalink)  
Antiguo 26/05/2009, 05:43
Avatar de Eternal Idol  
Fecha de Ingreso: mayo-2004
Ubicación: Lucentum
Mensajes: 6.192
Antigüedad: 20 años
Puntos: 74
Respuesta: y si necesito mas memoria?

Reservas memoria (podes usar un puntero temporal) con el tamaño suficiente, copias y concatenas lo que queres y liberas la memoria original; al final tu primer punto tiene que apuntar a la nueva memoria.
__________________
¡Peron cumple, Evita dignifica! VIVA PERON CARAJO
  #6 (permalink)  
Antiguo 26/05/2009, 06:38
Avatar de hades87  
Fecha de Ingreso: diciembre-2007
Ubicación: Barcelona - España
Mensajes: 3.194
Antigüedad: 16 años, 4 meses
Puntos: 68
Respuesta: y si necesito mas memoria?

para aumentar de espacio la memoria de un puntero puedes usar la función realloc()
__________________
No diseñes usando tablas.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 03:47.