What is the problem with my display function....
Code:
/*PROGRAM TO IMPLEMENT DIFFERENT OPERATIONS ON LINKED LISTS
*/
#include<stdio.h>
#include<stdlib.h>
#define draw for(i = 0 ;i<70;++i)printf(" ");
int flag_error = 0;
struct list
{
int num;
struct list *link;
};
typedef struct list node;
void display(node **p)
{
node **temp = p;
while(*temp != NULL)
{
printf("%d ->",*temp->num);
}
}
main()
{
node * head;
//MENU//
//while(1)
{
flag_error = 0;
int i;
system("clear");
draw
printf("-----------------------------\n\n\n");
draw
printf("------LIST MANIPULATION------\n\n");
draw
printf(" 1 : CREATE LIST \n");
draw
printf(" 2 : ADD ELEMENT \n");
printf(" 3 : DELETE ELEMENT \n");
draw
printf(" 4 : DISPLAY LIST \n");
draw
printf(" 5 : EXIT\n");
printf("-----------------------------\n\n\n");
draw
printf(" ENTER YOUR CHOICE\n");
{
int choice;
scanf("%d",&choice);
switch( choice )
{
case 1: draw
printf("--------ENTER ELEMENT--------\n");
{
int num;
scanf("%d",&num);
create(&head);
}
printf("--------LIST IS--------\n");
display(&head);
break;
case 2: draw
printf("--------ENTER ELEMENT TO ADD--------\n");
{
int num;
scanf("%d",&num);
draw
printf("--------1 : ENTER AFTER AN ELEMENT-------- \n");
draw
printf("--------2 : ENTER BEFORE AN ELEMENT--------\n");
draw
printf("--------3 : ENTER AT A GIVEN POSITION--------\n");
draw
printf("----------------\n");
{
int ch;
scanf("%d",&ch);
draw
switch(ch)
{
case 1:
case 2:
printf("--------ENTER THE ELEMENT--------\n");
break;
case 3:printf("--------ENTER THE POSITION--------\n");
}
{
int no;
scanf("%d",&no);
add(&head,num,ch,no);
}
}
draw
if( flag_error != 1)
{
printf("--------NUMBER ADDED TO LIST--------\n");
draw
printf("--------LIST IS--------");
display(&head);
}
else
printf("--------LIST IS FULL ...--------");
}
break;
case 3 :draw
printf("--------DELETE FROM WHICH POSITION\n--------\n");
{
int pos;
scanf("%d",&pos);
delete(&head,pos);
}
draw
if(flag_error != 1)
{
printf("--------ELEMENT DELETED--------\n");
draw
printf("--------LIST IS:");
display(&head);
printf("--------");
}
else
printf("--------LIST IS EMPTY--------\n");
break;
case 4 :display( &head );
break;
case 5:return 0 ;
default:draw
printf("--------INVALID CHOICE--------\n");
}
}
draw
printf("--------CONTINUE Y?N?--------\n");
{
char ch ;
scanf(" %c",&ch);
if( ch != 'y' || ch != 'Y' )
return 0;
}
}
}
when I compile,the compiler says "error: request for member ‘num’ in something not a structure or union" about the statement " printf("%d ->",*temp->num);"