I am testing a problem with linked list.
I just do a lot of times: create a list, then free it.
#############################################
# include <stdio.h>
# include <stdlib.h>
struct element {
int index;
struct element *next;
};
void free_list(struct element * first){
struct element *current,*next;
current=first;
next=current->next;
while(next !=NULL){
printf("free the %d the element\n",current->index);
free(current);
current=next;
next=current->next;
}
free(current);
}
void print_list(struct element *first){
struct element *current;
current=first;
while(current !=NULL){
printf("the %d th element visited\n",current->index);
current=current->next;
}
}
struct element *create_list(void){
struct element *temp,*leading,*previous;
int i;
leading=malloc(sizeof(struct element));
leading->index=0;
previous=leading;
for(i=1;i<1000;i++){
temp=malloc(sizeof(struct element));
temp->next==NULL;
temp->index=i;
previous->next=temp;
previous=temp;
}
return leading;
}
int main(){
int i;
struct element *dummy;
for(i=0;i<2;i++){
dummy=create_list();
print_list(dummy);
free_list(dummy);
}
return 0;
}
************************************************** ****
What's wrong this this code? it is fine when I use for(i=0;i<1;i++) in
main().
Thanks