What you basically need to understand is that you need to create several nodes. Let's think about 4 nodes. Node A, B, C and D. So the use of malloc()
is going to be to save in memory this 4 nodes (not in order, obviously).
It is a linked list, not a sequential list. This means that you should be able to "access" it like you would normally do in a sequential list, but they are not sequentially saved in memory (hardware speaking).
So: Your node A will have a pointer. This pointer will point to Node B. Same goes to Node B to node C, and Node C to Node D.
A->B->C->D
Remember ALL NODES must have whatever content you want, and a pointer to the next node, so you can access it from there.
This means that Node A can be in (imagine), position 4 in memory, Node B in position 16 in memory, Node C in position 2 in memory, and node D in position 300 in memory.
For example, an easy example using struct
:
struct Node {
int data;
struct Node *next;
};
When you insert a new node, you just need to change the pointers:
A->B->C->D E (you want to insert it in the second position).
So you need to change pointers. Something like:
E=A->nextNode; //A is no longer pointing to B
B=E->nextNode; //Now E is pointing to B
To use malloc as you are asking:
struct Node* A= malloc(sizeof(struct Node));
struct Node* B = malloc(sizeof(struct Node));
Take a look in here to see it better