Follow Techotopia on Twitter

On-line Guides
All Guides
eBook Store
iOS / Android
Linux for Beginners
Office Productivity
Linux Installation
Linux Security
Linux Utilities
Linux Virtualization
Linux Kernel
System/Network Admin
Programming
Scripting Languages
Development Tools
Web Development
GUI Toolkits/Desktop
Databases
Mail Systems
openSolaris
Eclipse Documentation
Techotopia.com
Virtuatopia.com
Answertopia.com

How To Guides
Virtualization
General System Admin
Linux Security
Linux Filesystems
Web Servers
Graphics & Desktop
PC Hardware
Windows
Problem Solutions
Privacy Policy

  




 

 

The GNU C Programming Tutorial - Initializing your data structure

Node:Initializing your data structure, Previous:Designing your data structure, Up:Setting up a data structure



Initializing your data structure

Once you understand your data structure, you can set about initializing it in the following way:

  1. Declare your structure type. For example:
    struct town
    {
      struct town *north;
      struct town *south;
      struct town *east;
      struct town *west;
      char name[50];
    };
    
  2. Declare two pointers to this type:
    struct town *root, *current;
    

    The root pointer is used to point to the root node of the data structure, and the current pointer points to the node with which we are currently working.

  3. Allocate memory for the root node:
    root = (struct town *) malloc (sizeof (struct town));
    

    Be sure to check for errors. The variable root will be a null pointer if no memory could be allocated for the node.

  4. Initialize the members of the root node:
    root->north = NULL;
    root->south = NULL;
    root->east  = NULL;
    root->west  = NULL;
    strcpy (root->name, "New Haven");
    

    Note that NULL pointers tell the program when it has come to the edge of the data structure, that is, when it has found a link that doesn't lead anywhere. At the moment, the links of the root node do not point anywhere. This will change as we add more nodes to the data structure.

  5. Create a new, non-root node:
    current = (struct town *) malloc (sizeof (struct town));
    
  6. Initialize the current node:
    current->north = NULL;
    current->south = root;
    current->east  = NULL;
    current->west  = NULL;
    strcpy (current->name, "North Haven");
    
  7. Link neighboring nodes to the current node, as appropriate:
    root->north = current;
    
  8. Repeat steps 5 through 7, as necessary.

See Controlled recursion with data structures, for a practical example of building a simple linked list programmatically.

 
 
  Published under free license. Design by Interspire