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

Almacenar caracteres en c

Estas en el tema de Almacenar caracteres en c en el foro de C/C++ en Foros del Web. Buenas, estoy programando en C y mi problema es el siguiente, a través de un parser voy a recibir una serie de cadenas de caracteres, ...
  #1 (permalink)  
Antiguo 22/01/2008, 09:57
 
Fecha de Ingreso: noviembre-2007
Mensajes: 21
Antigüedad: 16 años, 6 meses
Puntos: 0
Almacenar caracteres en c

Buenas, estoy programando en C y mi problema es el siguiente, a través de un parser voy a recibir una serie de cadenas de caracteres, quizás muchas o quizás muy pocas (incluso 3 caracteres) que debo de almacenar para imprimirlas posteriormente, está claro que memoria estática no es conveniente usar pero no sé como hacerlo con memoria dinámica ya que, no sé qué cantidad de memoria reservar. Quizás conociendo el tamaño del puntero, pero tampoco sé como.
¿Se os ocurre alguna manera de hacerlo? ¿quizás con otra estructura de datos?

Gracias!!
  #2 (permalink)  
Antiguo 22/01/2008, 10:28
Avatar de aloqui  
Fecha de Ingreso: diciembre-2007
Mensajes: 973
Antigüedad: 16 años, 5 meses
Puntos: 24
Re: Almacenar caracteres en c

Las cadenas de caracteres ¿ las vas a leer de un fichero, las vas a recibir como parámetro en una función de librerías ... ?

Una posibilidad es
- primero contar la longitud de las cadenas con: num=strlen(ptr)+1)
- luego reservar la memoria con ptrmem=malloc(num)
- Despues rellenar la memoria strcpy(ptrmem,ptr)
- Y luego guardar en un array, lista, (o lo que quieras) cada uno de esos punteros: ptrmem
__________________
Grupos de Música
Pop Music Stars
  #3 (permalink)  
Antiguo 22/01/2008, 10:55
 
Fecha de Ingreso: noviembre-2007
Mensajes: 21
Antigüedad: 16 años, 6 meses
Puntos: 0
Re: Almacenar caracteres en c

Las cadenas las recibo mediante una estructura de una librería, pero estoy probando la solución que me has dado y de momento va muy bien, a ver cuando entre con los realloc, porque la estructura es ascendente, y a medida que va reconociendo tokens (y almacenandolos) pues va ascendiendo y en el siguiente nivel ya lo que uso son realloc.
Gracias
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 04:08.