Я играю с переполнением буфера, но меня смущает то, что я нахожу при запуске следующей простой программы на C в Mac OS.
#include <stdio.h>
int main(void) {
char buf[2];
scanf("%s", buf);
printf("%s\n", buf);
}
Устанавливая длину buf равной 2байт, я ожидал вызвать ошибку сегментации при вводе строки "CCC", но этого не происходит.Только при вводе строки длиной 24 символа у меня возникает ошибка сегментации.
Что происходит?Это как-то связано с кодировкой символов?
Спасибо.