Si declaras el array como un puntero
Cita: const char* prueba[5];
cin >> prueba[1];
no le puedes poner la cantidad de almacenamiento asi (con [5])
Tienes dos opciones: o lo declaras sin puntero
O lo declaras como un puntero
Si optas por la segunda opcion siempre puede redimensionar el array y añadirle mas elementos...
Para ello, necesitas usar un malloc antes de comenzar a usar el vector: para esto también tienes varias maneras.
Inicializarlo de golpe los 5 elementos (o los n caracteres que sepas que vas a usar)
Código:
prueba = (const char *) malloc(sizeof(const char[n]));
(donde n puede ser 5 como en tu ejemplo o el numero que necesites)
O bien puedes re-inicializarlo de uno en uno segun vayas necesitando almacenar más caracteres (redimensionar el array que habias inicializado en un principio): antes de empezar a pedir el caracter inicializas el vector con un malloc, como antes...y cada vaz q necesites añadir mas caracteres utilizas un realloc.
Te pongo ejemplo también: tomamos el array de tu ejemplo, en principio necesitas almacenar 5 caracteres...pero mas adelante necesitas introducir un caracter mas...Por tanto, ya inicializaste el vector antes de usarlo con la funcion q te he indicado en el cuadro de codigo anterior (malloc) y has seguido con tu código. Ahora necesitas introducir un caracter mas, por lo que usas un realloc:
Código:
prueba = (const char *) realloc(prueba, (n+1)*sizeof(const char));
(n sigue siendo 5 como en tu ejemplo o el numero que hayas elegido para la funcion malloc)
A partir de aquí se utiliza como un vector nomal y corriente, accediendo a sus posiciones con los [0],[1]...etc (prueba[0], prueba[1]...)
Espero que te haya servido