bsearch Problem



  • Ich hab ein Problem. Die Sortierung und Suche haut so nicht hin:

    #define ANZ_ELM 5
    
    char *strtbl[ANZ_ELM] = { "C",
    			   "Is a very",
    			   "Powerful",
    			   "Language. And it makes fun!",
    			   "It's also" };
    
    ...
    
    int vergleich_str(const void *wert1, const void *wert2)
    {
    	return strcmp(*(char **)wert1, *(char **)wert2);
    }
    
    ...
    int main(void)
    {
    ....
        qsort(strtbl, ANZ_ELM, sizeof(char *), vergleich_str);
        strptr = (char *)bsearch(muster_str, strtbl, ANZ_ELM, sizeof(char *),   
                      vergleich_str);
    .....
    }
    

    Es kommt zu einem Programmabsturz. Kann mir jemand bitte helfen?



  • glaub das problem liegt in der vergleich_str versuchs mal so

    int vergleich_str(const void *wert1, const void *wert2)
    {
    	return strcmp((char *)wert1,(char *)wert2);
    }
    


  • Karl123 schrieb:

    Kann mir jemand bitte helfen?

    Ja.

    #define ANZ_ELM 5
    
    char strtbl[ANZ_ELM][100] = { "C",
    			   "Is a very",
    			   "Powerful",
    			   "Language. And it makes fun!",
    			   "It's also" };
    
    int main(void)
    {
    ....
        qsort(strtbl, ANZ_ELM, sizeof*strtbl, strcmp);
        puts(bsearch("Powerful", strtbl, ANZ_ELM, sizeof*strtbl,   
                      strcmp));
    ....
    }
    

Anmelden zum Antworten