Why pointer variable (new_node) hold new memory at each function call in my code ?
new_node = 00021230Code:#include<stdio.h> #include<stdlib.h> struct node { struct node *next_node; }; struct node *addNodeToFront( struct node *list) { struct node *new_node = malloc (sizeof(*new_node)); printf("new_node = %p\n", (void *)new_node); if ( new_node != NULL) { // new_node -> next_node = list; } return new_node; } int main() { struct node *list = NULL; list = addNodeToFront(list); list = addNodeToFront(list); list = addNodeToFront(list); return 0; }
new_node = 00021260
new_node = 00021270