// Hii all thanks a lot for helping me. spl. Rashakil Fol and Salem.
I m able to insert event into list. Now problme is when I try to print values in link list it gives me error..
..segmentation fault..
HERE IS MY REVISED CODE
Code:
#include <stdio.h>
#include <stdlib.h>
typedef struct olnode olnode;
struct olnode{
int eventnr;
int eventfq;
struct olnode * next;
};
olnode *list;
olnode *ptr;
olnode onode;
olnode * getnode();
int nextevent();
int insertevent(olnode *current, int);
void displayevent(olnode *current);
int main(void){
olnode * NODE;
olnode * head; // Header node
olnode * current; // Current node
int i,event=0,count,temp=0,j=0;
head=getnode(); // Memory is allocated for HEAD
current=head; // Current pointer pointing to HEAD
srand(time(NULL)); // Seed the random number
// Create an event for head
do{
event=rand();
if(event <=49 && event >=0)
j=1;
else
j=0;
}while(j==0);
current->eventnr=event; // assign event to the HEAD OF CURRENT
for(i=0;i<10000;i++) // generate 1000000 numbers
{
event=nextevent(); // generate nextevent
if(event<=49 && event>=0)// next event is between 0..49
{
printf("\nEvent is : %d.. and ",event);
temp=insertevent(current,event);
if(temp == 1)
printf("succcess");
}
}
current->next=NULL; //end of list
current=head; //get the first node in order to DISPLAY
printf("\nfirst number in list is %d ..", current->eventnr);
/************************* here my segmentation fault occurs *********/
current=current->next;
printf("\nsecond number inlist is %d",current->eventnr);
printf("\n");
return(0);
}
// allocate memory for newnode
olnode * getnode()
{
olnode *NODE;
NODE=malloc(sizeof(olnode)); //memory allocation
if(NODE==NULL){
printf("\n malloc() failed \n");
exit(0);
}
int nextevent()
{
int temp;
temp=rand();
return temp;
}
//insertevent into list
int insertevent(olnode *current, int event)
{
current->next = getnode();
current = current->next;
current->eventnr=event;
printf(" .. the value in linklist is : %d ", current->eventnr);
return 1;
}