Hallo Leute,
bin Einsteiger in C und verzweifle gerade an malloc().
Wenn ich richtig verstanden habe, dann allokiert malloc() Platz im Arbeitsspeicher und liefert dann einen Zeiger auf das erste Bit. Nun frage ich mich aber weshalb folgender Code funktioniert.
printf liefert folgende Ausgabe.
Weshalb passen hier 3 Bustaben in str hinein, obwohl ich doch nur Platz für einen Buchstaben (sizeof(char)) reserviert habe.
Danke im Voraus
bin Einsteiger in C und verzweifle gerade an malloc().
Wenn ich richtig verstanden habe, dann allokiert malloc() Platz im Arbeitsspeicher und liefert dann einen Zeiger auf das erste Bit. Nun frage ich mich aber weshalb folgender Code funktioniert.
Code:
void allokieren() {
char *str = (char *) malloc(sizeof (char));
str[0] = 'a' ;
str[1] = 'b' ;
str[2] = 'c' ;
printf("%s\n", str) ;
}
printf liefert folgende Ausgabe.
Code:
abc
Weshalb passen hier 3 Bustaben in str hinein, obwohl ich doch nur Platz für einen Buchstaben (sizeof(char)) reserviert habe.
Danke im Voraus