what this function does?

Double astrix says that the parameter is the pointer which P points at

so the parameters is p->next and num.

They create a node called elt ,they assign it a memory space in a size node

and make it a node pointer.

next they say that elt->next=p->next

elt->value is num

and p->next=elt

I cant imagine what is the structure of the combination of those to marked red lines.

??

Code:typedef struct node { int value; struct node *next; }Node; void what1(Node ** p,int num){ Node *elt; elt=(Node*)malloc(sizeof(Node)); elt->next=*p; elt->value=num; *p=elt; }