STRUCTURES CONTAINING POINTERS
Naturally, a pointer can also be a member of a structure.
struct int_pointers { int *ptr1; int *ptr2; };
In the above, the structure int_pointers is defined as containing two integer pointers, ptr1 and ptr2. A variable of type struct int_pointers can be defined in the normal way, eg,
struct int_pointers ptrs;
The variable ptrs can be used normally, eg, consider the following program,
#include <stdio.h> main() /* Illustrating structures containing pointers */ { struct int_pointers { int *ptr1, *ptr2; }; struct int_pointers ptrs; int i1 = 154, i2; ptrs.ptr1 = &i1; ptrs.ptr2 = &i2; *ptrs.ptr2 = -97; printf("i1 = %d, *ptrs.ptr1 = %d\n", i1, *ptrs.ptr1); printf("i2 = %d, *ptrs.ptr2 = %d\n", i2, *ptrs.ptr2); }
The following diagram may help to illustrate the connection,
|------------| | i1 |<-------------- |------------| | | i2 |<------- | |------------| | | | | | | |------------| | | | ptr1 |--------------- |------------| | ptrs | ptr2 |-------- |------------|