#include<iostream> #include<malloc.h> #include <string.h>
using namespace std; struct node { void *name; struct node *next; }; typedef struct node Node; void createList(Node **head ) { char *str= (char*)malloc(20*sizeof(char)); char *p; cout<<"Enter a String: " ; gets (str) ; p = str; if((strlen(p))<2) return; Node *temp=*head; Node *newnode=(Node*)malloc(sizeof(Node)); newnode->name=p; newnode->next=NULL; if(!temp) *head = newnode; else { while(temp->next) temp = temp->next; temp->next = newnode; } createList(head); } void display(Node *head) { cout<<"\n"; for( ; head ; head=head->next) cout<<"\t"<<head->name; cout<<"\n"; } int main() { Node *head=NULL; while(1) { cout<<"\n\t\tMENU\n"; cout<<"0 : To exit.\n"; cout<<"1 : To create a linear link list.\n"; cout<<"2 : To display the list.\n"; char choice; cin>>choice; if(choice=='0') break; switch(choice) { case '1': createList(&head ); break; case '2': display(head); break; default: cout<<"Enter valid choice."; } } system("pause"); return 0; } solve my problem On Fri, Aug 20, 2010 at 12:09 PM, ram das <ramnaraya...@gmail.com> wrote: > that's because you are creating char str[20]; on the stack so when the > function createList completes all str [20] will be deleted from stack as a > part of stack unwinding. and next you are calling display where all the > references to name is removed and you are getting gabage value.to avoid > this you need to allocate dinamic memory for str. > > ouy should use char *str= (char*)malloc(20*sizeof(char))in function > createList ; instead of > str[20]; > > > > On Thu, Aug 19, 2010 at 10:31 PM, Raj Jagvanshi > <raj.jagvan...@gmail.com>wrote: > >> my display function print garbage value from begining >> >> On Thu, Aug 19, 2010 at 5:22 PM, vineeth mohan <vm.vineethmo...@gmail.com >> > wrote: >> >>> void display(Node *head) >>> { >>> cout<<"\n"; >>> for( ; head ; head=head->next) >>> cout<<"\t"<<head->name; >>> cout<<"\n"; >>> } >>> >>> >>> when head reaches last node >>> condition head is true , then head will become head->next which is null , >>> and it will try to print the name field from of a null value which is error >>> >>> On Wed, Aug 18, 2010 at 10:53 PM, Raj Jagvanshi < >>> raj.jagvan...@gmail.com> wrote: >>> >>>> wats d problem in my display() >>>> >>>> >>>> >>>> >>>> #include<iostream> >>>> #include<malloc.h> >>>> #include <string.h> >>>> >>>> using namespace std; >>>> struct node >>>> { >>>> char *name; >>>> struct node *next; >>>> }; >>>> typedef struct node Node; >>>> >>>> void createList(Node **head ) >>>> { >>>> char str[20]; >>>> char *p; >>>> cout<<"Enter a String: " ; >>>> gets (str) ; >>>> p = str; >>>> if((strlen(p))<2) >>>> return; >>>> Node *temp=*head; >>>> Node *newnode=(Node*)malloc(sizeof(Node)); >>>> newnode->name=p; >>>> newnode->next=NULL; >>>> if(!temp) >>>> *head = newnode; >>>> else >>>> { >>>> while(temp->next) >>>> temp = temp->next; >>>> temp->next = newnode; >>>> } >>>> createList(head); >>>> } >>>> void display(Node *head) >>>> { >>>> cout<<"\n"; >>>> for( ; head ; head=head->next) >>>> cout<<"\t"<<head->name; >>>> cout<<"\n"; >>>> } >>>> int main() >>>> { >>>> Node *head=NULL; >>>> while(1) >>>> { >>>> cout<<"\n\t\tMENU\n"; >>>> cout<<"0 : To exit.\n"; >>>> cout<<"1 : To create a linear link list.\n"; >>>> cout<<"2 : To display the list.\n"; >>>> char choice; >>>> choice = getchar(); >>>> getchar(); >>>> if(choice=='0') >>>> break; >>>> switch(choice) >>>> { >>>> case '1': >>>> createList(&head ); >>>> break; >>>> case '2': >>>> display(head); >>>> break; >>>> default: >>>> cout<<"Enter valid choice."; >>>> } >>>> } >>>> system("pause"); >>>> return 0; >>>> } >>>> >>>> -- >>>> You received this message because you are subscribed to the Google >>>> Groups "Algorithm Geeks" group. >>>> To post to this group, send email to algoge...@googlegroups.com. >>>> To unsubscribe from this group, send email to >>>> algogeeks+unsubscr...@googlegroups.com<algogeeks%2bunsubscr...@googlegroups.com> >>>> . >>>> For more options, visit this group at >>>> http://groups.google.com/group/algogeeks?hl=en. >>>> >>> >>> -- >>> You received this message because you are subscribed to the Google Groups >>> "Algorithm Geeks" group. >>> To post to this group, send email to algoge...@googlegroups.com. >>> To unsubscribe from this group, send email to >>> algogeeks+unsubscr...@googlegroups.com<algogeeks%2bunsubscr...@googlegroups.com> >>> . >>> For more options, visit this group at >>> http://groups.google.com/group/algogeeks?hl=en. >>> >> >> -- >> You received this message because you are subscribed to the Google Groups >> "Algorithm Geeks" group. >> To post to this group, send email to algoge...@googlegroups.com. >> To unsubscribe from this group, send email to >> algogeeks+unsubscr...@googlegroups.com<algogeeks%2bunsubscr...@googlegroups.com> >> . >> For more options, visit this group at >> http://groups.google.com/group/algogeeks?hl=en. >> > > > > -- > Thanks & Regards > Ram Narayan Das > mob: +91 9177711195 > > -- > You received this message because you are subscribed to the Google Groups > "Algorithm Geeks" group. > To post to this group, send email to algoge...@googlegroups.com. > To unsubscribe from this group, send email to > algogeeks+unsubscr...@googlegroups.com<algogeeks%2bunsubscr...@googlegroups.com> > . > For more options, visit this group at > http://groups.google.com/group/algogeeks?hl=en. > -- You received this message because you are subscribed to the Google Groups "Algorithm Geeks" group. To post to this group, send email to algoge...@googlegroups.com. To unsubscribe from this group, send email to algogeeks+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/algogeeks?hl=en.