Examples of Structure Declaration and Use

The following program finds the sum of the integer numbers in a linked list:

/**
 ** Example program illustrating structures using linked lists
 **/
 
#include <stdio.h>
 
struct record {
                int number;
                struct record *next_num;
              };
 
int main(void)
{
   struct  record name1, name2, name3;
   struct  record *recd_pointer = &name1;
   int sum = 0;
 
   name1.number = 144;
   name2.number = 203;
   name3.number = 488;
 
   name1.next_num = &name2;
   name2.next_num = &name3;
   name3.next_num = NULL;
 
   while (recd_pointer != NULL)
   {
      sum += recd_pointer->number;
      recd_pointer = recd_pointer->next_num;
   }
   printf("Sum = %d\n", sum);
 
   return(0);
}

The structure type record contains two members: the integer number and next_num, which is a pointer to a structure variable of type record.

The record type variables name1, name2, and name3 are assigned the following values:

Member Value
name1.number 144
name1.next_num address of name2
name2.number 203
name2.next_num address of name3
name3.number 488
name3.next_num NULL (indicating the end of the linked list)

The variable recd_pointer is a pointer to a structure of type record. It is initialized to the address of name1 (the beginning of the linked list).

The while loop causes the linked list to be scanned until recd_pointer equals NULL. The statement:

recd_pointer = recd_pointer->next_num;

advances the pointer to the next object in the list.


The following example shows how to define and initialize a structure within a structure.

struct client {
              char *name;
              struct info {
                              int age;
                              int weight;
                          } pers_info;
         } child = { "Bob", { 3, 31 } }; /* initialization */


struct (Structure) Type