#include <iostream.h>
#include <string.h>

#define LS 200


// deklaracje  funkcji
char **wczytaj(int);
void wypisz(char **,int);
void zniszcz(char **,int);

int main(){

  char **T;  // deklaracja wskaznika na wskaznik na char
  int N;

  cout << "ile lancuchow wprowadzisz?" << endl;
  cin >> N;

  // wczytanie tablicy
  T=wczytaj(N);

  cout << endl << "wprowadzone lancuchy: " << endl;
  wypisz(T,N);

  // zwolnienie pamieci
  zniszcz(T,N);
  return 0;
}

void wypisz(char** T,int N){
  for ( int i=0; i<N ; i++ )
	 cout << T[i] << endl;
}


char ** wczytaj(int N){

  char **T=new char*[N];  // utworzenie nowego wskaznika z alokacja pamieci
								// na tablice N-elementowa
  char L[LS];

  for ( int i=0 ; i<N ; i++ ){
	 cout << "Podaj lancuch " << i+1 << " : ";
	 cin >> L;

	 T[i]=new char[strlen(L)+1]; // alokacja tablicy mieszczacej wczytany lancuch
	 strcpy(T[i],L);  // skopiowanie wszytanego lancucha do T[i]
  }
  return T;
}

void zniszcz(char **T,int N){
  for ( int i=0 ; i<N ; i++ )
    delete []T[i];
  delete []T;
}

