I am really confused about the following:
char *list = malloc(sizeof(char));
list[0] = 'a';
list[1] = 'b';
printf("%s\n", list);
My expectation was some kind of undefined behavior, because list
has only memory for 1 char "object".
But the actual output is ab
. Why can I access list[1]
when list
only has allocated memory for one char?