Pointing out the horses: allocate memory for struct : Struct Define « Structure « C / ANSI-C






Pointing out the horses: allocate memory for struct

#include <stdio.h>
#include <ctype.h>
#include <stdlib.h>   /* 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]);
   }
}


           
       








Related examples in the same category

1.Using a structure representing a length
2.Using a structure representing a person's name
3.Using a structure to record the count of occurrences of a word
4.How to use struct
5.Exercising the horse: Structure declaration
6.Define a simplest struct
7.Define and use a struct