C: Was bedeutet char str[20]?

Dieses Thema im Forum "Programmierung & Entwicklung" wurde erstellt von Gutschy, 3. Januar 2016 .

Schlagworte:
  1. 3. Januar 2016
    Hallo Leute,

    bin mal mit C angefangen. Hab schon einiges zu Python und VB/A gelesen und probiert. Ist jetzt auch hier mehr eine Frage zur Form.
    Code:
    /* suchmenge1.c */
    #include <stdio.h>
    
    int main(void) {
     char str[20];
     printf("Bitte geben Sie nur Zahlen ein: ");
     scanf("%[0-9]", str);
     printf("%s\n",str);
     return 0;
    }
    
    Die Zeile wo "char str[20];" steht, was soll mir 20 sagen. Ich sehe da nur eine Variable vom Typen char die str heisst. Ohne die 20 funkt. es schon mal nicht. Aha.

    Schon mal Danke für eure Hilfe.

    Gruss,

    gutschy
     
  2. 3. Januar 2016
    AW: Leichte Afänger C Frage zu "char str[20]"

    Das ist ein char Array der Größe 20. D.h. du kannst in dieser Variable eine bis zu 19 Zeichen lange Zeichenkette, inklusive terminierendem '\0'-Zeichen speichern.

    Mehr dazu hier: Rheinwerk Computing :: C von A bis Z &ndash; 11.11 Strings/Zeichenketten (»char«-Array)
     
  3. 3. Januar 2016
    AW: C: Was bedeutet char str[20]?

    Hi Dimi,
    das mit dem Array war auch mein erster Gedanke, allerdings kann ich auf meinem PC 23 Ziffern übergeben, die dann wieder ausgegeben werden, übergebe ich mehr, z.B. 30 Ziffern, werden die auch wieder ausgegeben aber es kommt ein Speicherzugriffsfehler dazu. Das hatte mich gewundert und darum war ich mir nicht sicher was ich das vor mir habe. Gibt es einen Grund für dieses Verhalten?

    Gruss,

    Gutschy
     
  4. 3. Januar 2016
    AW: C: Was bedeutet char str[20]?

    Glück. Du forderst einen Speicher für 20 character an. Alles was hinter diesem Adressblock liegt, ist erstmal undefiniert. Und je nachdem wie die Sterne grad stehen hast du Glück und dein Programm läuft durch, oder halt nicht.
     
  5. 3. Januar 2016
    AW: C: Was bedeutet char str[20]?

    Aha.
    Habe ich dann hier schon einen so genannten Buffer Overflow?
     
  6. 3. Januar 2016
    AW: C: Was bedeutet char str[20]?

    genau
     
  7. 3. Januar 2016
    AW: C: Was bedeutet char str[20]?

    Na Geil, find ich witzig. Danke an Alle für die Hilfe.
     
  8. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.