Code:
#include <stdio.h>
#include <stdlib.h>


typedef struct Node
{
	int data;
	struct Node *next;
}node;

void insert(node **ptrtohead, int val)
{
   node *temp=(node*)malloc(sizeof(node));


		*ptrtohead=temp;   
		temp->data=val;

		temp->next=NULL;
  	
 	 if(*ptrtohead != NULL)
   	{
   	
   
		temp->next=*ptrtohead;
		*ptrtohead=temp; 
     }
     

}

void display(node *start)
{
	while(start!=NULL)
	{
	
		printf("%d ",start->data);
	   start= start->next;
		
	}
}

int main(int argc, char *argv[])
{
  
  
  node *head=NULL;

	insert(&head,10);
	insert(&head,20);
	display(head);
  
  system("PAUSE");	
  return 0;
}
I don't know where is the problem, the output is infinite number of 10 !!!! Help is very much appreciated.