Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: kafok en 5 Abril 2011, 19:42 pm



Título: Alguien me puede ayudar???
Publicado por: kafok en 5 Abril 2011, 19:42 pm
Tengo un problema que no puedo solucionar, para crear una cadena se hace mediante un vector, vale? pero yo quiero un vector dinamico que mida x, y que cada x contenga una cadena. He probado con un vector bidimensional pero no se hacerlos dinamicos y tampoco como rellenar la cadena con datos que ingrese el usuaio.


Título: Re: Alguien me puede ayudar???
Publicado por: Akai en 5 Abril 2011, 21:08 pm
Código
  1. char **vector_cadenas

de esta forma, tienes un puntero a puntero a char, o puntero a vector de char.

Código
  1. //n=numero de palabras
  2. vector_cadenas=new char*[n]
  3. for(i=0;i<n;i++){
  4. longitud_palabra=preguntar_por_longitud();
  5. vector_cadenas[i]=new char[longitud_palabra]
  6. leer_palabra(vector_cadenas[i])
  7. }
  8. // se supone que
  9. //longitud_palabra
  10. //varia cada iteración

De esa forma, declaras cada vector de char con diferente tamaño.

Para acceder a una palabra: vector_cadenas[palabra]

Para acceder a una letra: vector_cadenas[palabra][letra]




Título: Re: Alguien me puede ayudar???
Publicado por: EvilGoblin en 5 Abril 2011, 21:18 pm


Yo lo haria asi:


Código
  1. char **list;
  2. int count;
  3.  
  4. list = NULL;
  5. count = 0;
  6.  
  7. list = (char**)malloc(1*sizeof(char*));
  8. list[count] = (char*) malloc(TextSize); //textsize el tamaño del texto que vayas a guardar
  9.  
  10. memset(list[count],0,strlen(list[count]));
  11.  
  12.  

y luego lo usas

claro, esto es algo muy tosco y burdo, necesitarias funciones que crean nuevas listas, guarden, editen o borren. Tmb que te digan cuantas tienes guardadas para saber el limite.


Suerte!