The code is as follows , Seems like nothing wrong with it at all. My gcc doesnt find alloc.h
print(node *q)
    39  {   
    40      node *p=q;
    41              do
    42      {
    43          printf("%d",p->n);
    44          if(p->ptr != NULL)
    45          p=p->ptr;   
    46          else
(gdb) p p $1 = (node *) 0x0
And the code where memory is allocated is
    if(p== NULL)
    {
            p=(node *)malloc(sizeof(node));
            if(p== NULL)
                    printf("The malloc failed\n");
            p->n=num;
            p->ptr=NULL;
    }
When I run this in debugger there is no message of malloc failed.
Can anyone help. Regards
Sraddha
    add(node **q)
    {
         node *p=*q;
         int num;
         printf("Enter the number you want to add");
         scanf("%d", &num);
         if(p== NULL)
         {
            p=(node *)malloc(sizeof(node));
            if(p== NULL)
                    printf("The malloc failed\n");
            p->n=num;
            p->ptr=NULL;
         }
    }
 
     
    