⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dynlink.c

📁 c版本的
💻 C
字号:
                                          /* Chapter 12 - Program 3 */
#include "stdio.h"    /* this is needed only to define the NULL     */
#define RECORDS 6

main()
{
struct animal {
   char name[25];       /* The animals name                         */
   char breed[25];      /* The type of animal                       */
   int age;             /* The animals age                          */
   struct animal *next; /* a pointer to another record of this type */
} *point, *start, *prior; /* this defines 3 pointers, no variables  */
int index;

                       /* the first record is always a special case */

   start = (struct animal *)malloc(sizeof(struct animal));
   strcpy(start->name,"General");
   strcpy(start->breed,"Mixed Breed");
   start->age = 4;
   start->next = NULL;
   prior = start;
       /* a loop can be used to fill in the rest once it is started */

   for (index = 0;index < RECORDS;index++) {
      point = (struct animal *)malloc(sizeof(struct animal));
      strcpy(point->name,"Frank");
      strcpy(point->breed,"Laborador Retriever");
      point->age = 3;
      prior->next = point;  /* point last "next" to this record */
      point->next = NULL;   /* point this "next" to NULL        */
      prior = point;        /* this is now the prior record     */
   }

       /* now print out the data described above */

   point = start;
   do {
      prior = point->next;
      printf("%s is a %s, and is %d years old.\n", point->name,
              point->breed, point->age);
      point = point->next;
   } while (prior != NULL);

       /* good programming practice dictates that we free up the */
       /* dynamically allocated space before we quit.            */

   point = start;            /* first block of group      */
   do {
      prior = point->next;   /* next block of data        */
      free(point);           /* free present block        */
      point = prior;         /* point to next             */
   } while (prior != NULL);  /* quit when next is NULL    */
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -