Zwischendurch mal ein bisschen Pointerarithmetik



  • Umfrage: Wie lange habt Ihr gebraucht um auf die Lösung zu kommen?

    Auswahl Stimmen Prozent
    < 5 min 6 19.4%
    5 - 15 min 6 19.4%
    > 15 min 0 0.0%
    nur einen Teil konnte ich lösen 8 25.8%
    ich kann damit nix anfangen 2 6.5%
    so ein Unsinn, ich habe besseres zu tun 9 29.0%

    Hi,
    wer Lust hat, der kann ein bissl dran knobeln, welche Ausgabe dieses Programm produziert und DANACH die Lösung mit dem Compiler prüfen (bitte die Lösung nicht posten):

    char *c[] = {"ENTER", "NEW", "POINT", "FIRST"};
    char **cp[] = {c+3, c+2, c+1, c};
    char ***cpp = cp;
    
    int main(void)
    {
        printf ( "%s", **++cpp);
        printf ( "%s", *--*++cpp+3);
        printf ( "%s", *cpp[-2]+3);
        printf ( "%s", cpp[-1][-1]+1);
        return 1;
    }
    

    Ich selbst habe leider nicht alle Zeilen auf Anhieb richtig interpretiert.
    Ich bin das Programm aber nach dem Compilieren nochmals gedanklich durchgegangen und bilde mir ein jetzt verstanden zu haben, wie es arbeitet.
    Wenn Ihr noch so kleine Progrämmchen der Art habt, dann her damit.



  • Eigentlich habe ich ja besseres zu tun -> aber das fand ich ganz cool.

    ich hab aber mitgeschrieben - ich hoffe das ist erlaubt 🙂 denn wo was hinzeigt kann ich mir nicht merken 😉



  • 4min
    ergibt ein leckeres Gericht 😉



  • Was soll ich sagen? 🙂

    Die ersten beiden Zeilen gingen recht Fix. Und dann wurde es schwieriger :).

    Zwar keine 4min, aber zwischen 5 und 15min. 🙂

    Recht knifflig

    mfg
    v R



  • 11 Minuten



  • Bei der 3. Zeile (printf) hatte ich etwas Schwierigkeiten mit der Rangfolge, aber sonst liefs ganz gut. Tolle Idee eines Rätsel, finde ich.



  • Ist ne schöne Aufgabe 🙂 .


Anmelden zum Antworten