I have a char pointer in the structure to store names.When I inserted the values and printed the last value of name is getting printed for all nodes.
typedef struct tests{
      int id;
      char *p;
  struct tests *next;
}test;'
'void add(test **root,int id,char *name){
  test *newnode=(test* )malloc(sizeof(test));
  newnode->id=id;
  newnode->p=name;
  newnode->next=NULL;
  test *curr;
  curr=(*root);
  if((*root)==NULL){
    (*root)=newnode;
  }
  else{
    while(curr->next!=NULL){
      curr=curr->next;
    }
    curr->next=newnode;
  }
}
 
    