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