/*
EJEMPLO 11.5.
Lectura y visualización de un texto almacenado en memoria dinámica.
Lee un texto de 3 líneas y se visualizan indicando la longitud de cada línea.
La memoria se ajusta a la longitud mínima de la entrada de datos. Para ellos
se reserva memoria interactivamente a un array de punteros a caracteres.
Se lee una línea en un buffer de longitud constante 81, y se ajusta la longitud
del texto de entrada al valor leído.
*/
#include <iostream>
#include <cstring>
using namespace std;
int main()
{
typedef char * columna;
char ** textoEntrada; // valido para columna *textoEntrada
int n=3;
char buffer[81];
textoEntrada = new char*[n]; // reserva de memoria
for(int i=0; i<n; i++){
cout<<"Introduzca línea: ";
cin.getline(buffer, 80);
textoEntrada[i] = new char [strlen (buffer)+1]; // ajuste
strcpy(textoEntrada[i], buffer);
}
cout<<endl;
cout<<"longitud línea\n";
for(int i=0; i<n; i++){
cout<<" "<<strlen(*(textoEntrada+i))<<": "<<*(textoEntrada+i)<<endl;
}
//Liberacion de la memoria asignada
//en orden inverso a su asignación
for(int i=0; i<n; i++){
delete textoentrada[i];
}
delete [] textoentrada;
return EXIT_SUCCESS;
}