Problem is that t1=new(list); and the socond is t1=new(list);
and I dont know why.. please help me...
Code:
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
#include<time.h>
typedef struct list{
char data;
struct list *link;
}list;
void create_list(list **);
void preview_list(list *);
void clear_memory(list *);
void main()
{
list *p1=NULL,*p2=NULL,*p=NULL;
list *t1,*t2,*q1,*q2,*tp;
create_list(&p);
puts("Start");
preview_list(p);
tp=p;
while (tp){
if (tp->data<0){
t1=new(list); t1->data=tp->data; t1->link=NULL;
if (p1==NULL) {p1=t1; q1=t1;}
else {q1->link=t1; q1=t1;}
}
else{
t2=new(list); t2->data=tp->data; t2->link=NULL;
if (p2==NULL) {p2=t2; q2=t2;}
else {q2->link=t2; q2=t2;}
}
tp=tp->link;
}
puts("\nNegative elements");
preview_list(p1);
puts("\nPozitive elements");
preview_list(p2);
clear_memory(p);clear_memory(p1);clear_memory(p2);
}
void create_list(list **top)
{ int i,n;
list *t,*q;
srand(time(NULL));
puts("Enter number of elements");
printf("n= "); scanf("%d",&n);
t=new(list); t->data=rand()%40-20; t->link=NULL;
*top=t; q=t;
for(i=1; i<n; i++){
t=new(list); t->data=rand()%40-20; t->link=NULL;
q->link=t; q=t;
}
}
void preview_list(list *top)
{
list *t;
t=top;
while (t)
{ printf("%d ",t->data);
t=t->link;
}
getch();
}
void clear_memory(list *top)
{ list *t;
t=top;
while(t)
{
top=top->link;
delete(t);
t=top;
}
}
those problem i have that i compil my program