/* 
   Laboratorium Praktyki Programowania  
   Program przykładowy 
*/


/* Należ pozostawić definicję tylko jednej ze stałych : */
/* dla nowszych kompilatorów */
#define ANSI
/* dla starszych kompilatorów */
//#define ARM


#ifdef ANSI
#include <iostream>
#include <cstring>
using namespace std;
#endif

#ifdef ARM
#include <iostream.h>
#include <string.h>
#endif

#define LS 20


//definicja nowego typu WT -- wskaznik na tablice 20 elementowa typu char
typedef char (*WT)[LS];

// deklaracje  funkcji  wypisz
void wypisz(WT,int);

int main(){

  WT T;  // deklaracja wskaznika na tablice 20-elem typu char
  // alternatywnie mozna by
  //char (*T)[LS];
  int N,i;


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

  //alokacja tablicy 2-wymiarowej
  T=new char[N][LS];


  if ( T==NULL ){
	 cerr << "Blad alokacji!" << endl;
	 exit(1);
  }

  for ( i=0 ; i<N ; i++ ){
	cout << "wprowadz lancuch " << i+1 <<" : ";
	cin >>T[i];
  }

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

  //zwolnienie pamieci
  delete []T;

  return 0;
}

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

