#1
  1. No Profile Picture
    dark angel
    Devshed Newbie (0 - 499 posts)

    Join Date
    Mar 2002
    Location
    in your mind....
    Posts
    2
    Rep Power
    0

    Unhappy whats this warning mean?and how to search keyword...


    im running a prog.on linux c BUT keep on gettin warning msgs: Ansii c++ prohibits void* conversion
    in the malloc part of the linked list.
    ex.pNew = malloc(sizeof(structGNodeType));

    im also tryin to make a code that given a keyword it will search for its instances in all the Questions(take note that words in the question are seperated by a space)-my code here runs but doesnt seem to get any match though im pretty sure the keyword i entered has a match.anybody help??

    int find(ptrGNode pGame)
    { ptrGNode pTemp;
    int nCtr,i,j,k,l,m,nVal;
    str70 strTemp;

    char sKey[31];
    int nFound=0,nWhere;
    nCtr =0;
    do{printf("\n\n Enter Keyword:>");
    scanf("%s",sKey);

    if(strlen(sKey)>31)

    printf("Keyword must only be 30 characters or less");

    }while(strlen(sKey)>31);
    if(sKey[0]=='\0')
    return(NOT_FOUND);
    else
    {pTemp=pGame;
    j=0;

    while(pTemp!=NULL)
    {
    for(i=0;i<strlen(pTemp->sGame.strQuestions);i++)
    {
    while(pTemp->sGame.strQuestions[i]!='\0')
    {
    strTemp[j]=pTemp->sGame.strQuestions[i];
    j++;
    }
    strTemp[j]='\0';

    if(!strcmp(strTemp,sKey))
    {
    nFound=1;
    return(nCtr);
    }
    else
    nCtr++;
    pTemp=pTemp->pGNext;
    }
    }
    }
    if(nFound==1)
    nWhere=nCtr;
    else
    nWhere=NOT_FOUND;

    return(nWhere);
    }





    /*Function: view_Keyword *
    * Purpose: this function displays the question matching the keyword *
    * Note: Calls the function int find() */

    void view_Keyword(ptrGNode pGame,struct_Game sGame)
    {ptrGNode pTemp;
    int nNum,nChoice;

    pTemp=pGame;
    do
    {printf("\n ~ ~ ~ ~ ~ VIEW KEYWORD ~ ~ ~ ~ ~ \n");
    nNum = find(pGame);
    if( nNum==-1)

    printf("not found!");
    else

    display_Question(pTemp->sGame);
    printf(" Would you like to look up another(1-yes/0-no)?");
    scanf("%d",&nChoice);

    if(nChoice==1)
    view_Keyword(pGame,sGame);
    else if(nChoice==0)
    view_Question(pGame,sGame);
    else
    puts(ERROR);
    }while(nChoice==1);
  2. #2
  3. No Profile Picture
    Registered User
    Devshed Newbie (0 - 499 posts)

    Join Date
    Mar 2002
    Posts
    20
    Rep Power
    0
    new and alloc function return void* pointers.

    since your struct/class member pNew likely has a different type you have to explicitly typeconfvert.
    Say pNew is a pooiinter to int write:
    ex.pNew = (int*) malloc (...);
  4. #3
  5. No Profile Picture
    dark angel
    Devshed Newbie (0 - 499 posts)

    Join Date
    Mar 2002
    Location
    in your mind....
    Posts
    2
    Rep Power
    0
    ive already tried fixin the errors ......already fixed but how come it generateda segmentation fault whats worng with my code or what might have possibly caused it?:confused:
  6. #4
  7. No Profile Picture
    Registered User
    Devshed Newbie (0 - 499 posts)

    Join Date
    Mar 2002
    Posts
    20
    Rep Power
    0
    segmentation fault seams to indicate that you're accessing data you shouldn't. This points to either pointers or indices.

    In your 3.lvl while - loop
    while(pTemp->sGame.strQuestions[i]!='\0')
    you don't increment 'i' so you got an infinite loop. I don't really understand your code so i can't tell you what the correct version should look like.

    Hope it helps :)

IMN logo majestic logo threadwatch logo seochat tools logo