String



  • Hallo,
    also
    Wenn ich eine String so schreibe ist sie 11 Byte gross:

    char test1[]={"Hallo Welt"};
    printf("String test1: %d",sizeof(test1));   //11 Byte
    

    Wenn ich sie so schreibe dann 4 Byte:

    char *test2 ="Hallo Welt";
    printf("String test2: %d",sizeof(test2)); //4  Byte
    

    Wie genau soll ich das verstehn?
    Ist das nur der Zeiger der so gross ist, im hintergrund ist sie auch 11 Byte?

    Grüsse Rihtol



  • das erste ist die grösse des arrays (10 bytes + 0)
    das zweite ist die grösse eines char*, unabhängig worauf der zeigt. für die grösse des strings nimmt man dann sowas wie 'strlen()'



  • Ok, jetzt ist alles klar, danke!


Anmelden zum Antworten