#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 + Multi-Zitat Zitieren
#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 – 11.11 Strings/Zeichenketten (»char«-Array) + Multi-Zitat Zitieren
#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 + Multi-Zitat Zitieren
#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. + Multi-Zitat Zitieren
#5 3. Januar 2016 AW: C: Was bedeutet char str[20]? Aha. Habe ich dann hier schon einen so genannten Buffer Overflow? + Multi-Zitat Zitieren
#7 3. Januar 2016 AW: C: Was bedeutet char str[20]? Na Geil, find ich witzig. Danke an Alle für die Hilfe. + Multi-Zitat Zitieren