Ver Mensaje Individual
  #2 (permalink)  
Antiguo 27/05/2009, 08:39
haidion
 
Fecha de Ingreso: febrero-2004
Ubicación: Buenos Aires
Mensajes: 60
Antigüedad: 21 años
Puntos: 0
Respuesta: Vector dinamico de cadenas de caracteres

Primero un comentario para definir un array de 8x16 tienes que hacer
Código c++:
Ver original
  1. char cadena[8][16];

Y si el segundo indice corresponde a una cadena de caracteres tienes que hacer espacio para el caracter nulo que indica el fin de la cadena. entonces deberia ser

Código c++:
Ver original
  1. char cadena[8][17]

Para hacer reserva dinamica se utilizan los operadores new y delete [];

Primero se declara un puntero a puntero para poder inicializar un array bidimensional.

Código c++:
Ver original
  1. char  **cadena;


si words es el numero de palabras se uza el operador new para crear un array de cadenas de longitud words.

Código c++:
Ver original
  1. cadena=new char *[words];

luego para cada palabra se define una cadena de longitud 16

Código c++:
Ver original
  1. for(int i=0;i<words;i++) cadena[i]=new char[17];

Todo junto seria:

Código c++:
Ver original
  1. char  **cadena;
  2.  
  3. cadena=new char *[words];
  4.  
  5. for(int i=0;i<words;i++) cadena[i]=new char[17];

Y cuando terminas de usar la cadena no tenes que olvidarte de liberar la memoria utilizada.

Código c++:
Ver original
  1. for(int i=0;i<words;i++) delete [] cadena[i];
  2.  
  3. delete [] cadena;

Espero que te sirva