#include<stdlib.h>

typedef char * A[] ;

void print_it( A * p, int i) {
   for (i--;i>=0;i--) printf("%s", (*p)[i] ) ;
}

/* sizeof(char * []) or sizeof(A) complains 
   of INCOMPLETE TYPE on gcc, mips complains
   of zero size. Conversely, sizeof(char * [0])
   is OK by gcc, but the same zero size complaint
   occurs with mips. */

int main() {
   A * qa, * qb, * qc ;
   qa = (A *) malloc(sizeof(char * [5])) ;
   qb = (A *) malloc(sizeof(char * [7])) ;
   qc = (A *) malloc(sizeof(char * [0])) ;
   (*qa)[1] = "hello " ;
   (*qa)[0] = "world\n" ;
   print_it(qa,2) ;
   free(qa) ;
}

