Pointers to structures in embedded C

Sometimes you might like to manipulate the members of structures in more generalized way. This can be done by using pointer reference to structure. Sometimes it is easier to pass pointer to structure than passing entire structure to function.

Structure pointer can be declared very easily:

struct structure_tag_name *variable;

For instance:

struct position{
	int x;
	int y;
}pos1, *pos2;

we can assign first structure address to structure pointer like this:

pos2=&pos1;

now we can access first structure members by using structure pointer:

pos2->x=10;

or we can write

(*pos2).x=10;

Structures can contain member pointers to other structures or to structures of same tyme. This way we can create lists – dynamic structure:

struct list{
	int listNo;
	struct list *next;	//pointer to another structure
}item1, item2;

This way you can assign the pointer with address to another structure:

item1.next=&item2;

Read more about dynamic structures in C tutorials.