Speicherabbild von String



  • Moin,

    ich soll als Aufgabe ein Speicherabbild von nem String ausgeben.

    Nun glaube ich, dass folgendes gilt in C: Ein String ist ein Char-Array und jeder Buchstabe ein Element im Array. Und für jedes Element des Arrays müsste demnach genau eine Speicheradresse zugeordnet sein.

    Also müsste dieser Code das Speicherabbild darstellen oder seht ihr einen Denkfehler?

    int main(int argc, char **argv)
    {
        if(argc>1){
    
            char string[] = "die schoenen Dinge im Leben sind umsonst.";
            int i=0;
            int t=1;
            while(t!=0){
                if(*(string+i) =='\0')
                    t=0;
                printf("%p\t",(string+i));
                i++;
            }
            printf("\n");
            t=1;
            i=0;
            while(t!=0){
                if(*(string+i) =='\0')
                    t=0;
                printf("%c\t", *(string+i));
                i++;
            }
        }
        return 0;
    }
    

  • Mod

    Funktioniert es nicht wie gewünscht?



  • SeppJ schrieb:

    Funktioniert es nicht wie gewünscht?

    Es gibt auf jeden Fall etwas aus. Die Frage war eher: Sind meine Überlegungen dazu korrekt bzw ist das was ich da ausgebe, das was gefordert ist^^


  • Mod

    Kommt drauf an, was du unter "Speicherabbild" verstehst. Du gibst definitiv die Adressen der einzelnen Zeichen im String und später die Zeichen selbst aus. Insofern sind deine Überlegungen korrekt. Ich hätte unter einem Speicherabbild jedoch etwas anderes (aber ähnliches) verstanden.


Log in to reply