Stringübergabe geht schief



  • Hallo, ich teste gerade ein kleines Programm und die Stringrückgabe will einfach nicht funktionieren. Anstatt von "drei" bekomme ich NULL zurück.
    Ich würde mich sehr über Hilfe freuen.

    Viele Grüße

    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>
    
    const char *test(int p);
    
    int main()
    {
        int ran;
    
        ran=2;
        const char *wort=test(ran);
        puts(wort);
    
    }
    
    const char *test(int p)
    {
        const char *wort2[10][10]=
        {
            "eins",
            "zwei",
            "drei",
            "vier",
            "fünf",
            "sechs",
            "sieben",
            "acht",
            "neun",
            "zehn"
        };
    
        return *wort2[p];
    
    }
    

  • Mod

    const char *wort2[10][10]
    

    Das ist irgendwie ein bisschen viel Array, für ein Array von Zeigern, oder? Mach Compilerwarnungen an, behandle Warnungen wie Fehler.

    Dies ist wohl die beste Lösung:

    const char *wort2[]
    

Anmelden zum Antworten