#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.

Reply via email to