//The dynamic two-dimensional array
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
int i;
int nu = 0;
char temp[100] = {0};
char **p = NULL;
char **q = NULL;
while(1)
{
scanf("%s",temp);
if(!strcmp(temp,"quit"))
{
break;
}
nu++;
q = p;
p = (char**)malloc(sizeof(char*)*nu);
if(p == NULL)
{
return 1;
}
for(i = 0; i < nu - 1; i++)
{
p[i] = q[i];
}
p[i] = (char*)malloc(strlen(temp) + 1);
if(NULL == p[i])
{
for(i = 0; i < nu -1; i++)
{
free(p[i]);
}
free(p);
free(q);
return -2;
}
strcpy(p[i],temp);
if(q != NULL)
free(q);
}
for(i = 0; i < nu; i++)
{
printf("%s ",p[i]);
}
putchar('\n');
for(i = 0; i < nu; i++)
{
free(p[i]);
}
free(p);
return 0;
}