home *** CD-ROM | disk | FTP | other *** search
- /* Chapter 12 - Program 1 */
- main()
- {
- struct animal {
- char name[25];
- char breed[25];
- int age;
- } *pet1, *pet2, *pet3;
-
- pet1 = (struct animal *)malloc(sizeof(struct animal));
- strcpy(pet1->name,"General");
- strcpy(pet1->breed,"Mixed Breed");
- pet1->age = 1;
-
- pet2 = pet1; /* pet2 now points to the above data structure */
-
- pet1 = (struct animal *)malloc(sizeof(struct animal));
- strcpy(pet1->name,"Frank");
- strcpy(pet1->breed,"Labrador Retriever");
- pet1->age = 3;
-
- pet3 = (struct animal *)malloc(sizeof(struct animal));
- strcpy(pet3->name,"Krystal");
- strcpy(pet3->breed,"German Shepherd");
- pet3->age = 4;
-
- /* now print out the data described above */
-
- printf("%s is a %s, and is %d years old.\n", pet1->name,
- pet1->breed, pet1->age);
-
- printf("%s is a %s, and is %d years old.\n", pet2->name,
- pet2->breed, pet2->age);
-
- printf("%s is a %s, and is %d years old.\n", pet3->name,
- pet3->breed, pet3->age);
-
- pet1 = pet3; /* pet1 now points to the same structure that
- pet3 points to */
- free(pet3); /* this frees up one structure */
- free(pet2); /* this frees up one more structure */
- /* free(pet1); this cannot be done, see explanation in text */
- }
-