Structure C

#include 
#include 
#include    /* For malloc() */
struct cat
{
     int age;
     int height;
     char name[20];
     char father[20];
     char mother[20];
};
void main()
{
   struct cat *pcat[50];
   int hcount = 0;
   int i = 0;
   char test = '\0';
   for(hcount = 0; hcount < 50 ; hcount++ )
   {
     printf("Do you want to enter details of a%s cat (Y or N)? ",hcount?"nother " : "" );
     scanf(" %c", &test );
     if(tolower(test) == 'n')
       break;
     pcat[hcount] = (struct cat*) malloc(sizeof(struct cat));
     printf("\nEnter the name of the cat: " );
     scanf("%s", pcat[hcount]->name );
     printf("\nHow old is %s? ", pcat[hcount]->name );
     scanf("%d", &pcat[hcount]->age );
     printf("\nHow high is %s ( in hands )? ", pcat[hcount]->name );
     scanf("%d", &pcat[hcount]->height );
     printf("\nWho is %s's father? ", pcat[hcount]->name );
     scanf("%s", pcat[hcount]->father );
     printf("\nWho is %s's mother? ", pcat[hcount]->name );
     scanf("%s", pcat[hcount]->mother );
   }
   for (i = 0 ; i < hcount ; i++ )
   {
     printf("\n\n%s is %d years old, %d hands high,", pcat[i]->name, pcat[i]->age, pcat[i]->height);
     printf(" and has %s and %s as parents.", pcat[i]->father, pcat[i]->mother);
     free(pcat[i]);
   }
}