Каково поведение печати NULL со спецификатором% s в printf?
Наткнулся на интересный вопрос интервью:
test 1:
printf("test %s\n", NULL);
printf("test %s\n", NULL);
prints:
test (null)
test (null)
test 2:
printf("%s\n", NULL);
printf("%s\n", NULL);
prints
Segmentation fault (core dumped)
Хотя это может нормально работать на некоторых системах, по крайней мере, у меня возникает ошибка сегментации. Что было бы лучшим объяснением этого поведения? Выше код находится в C.
Следующее - моя информация о gcc:
deep@deep:~$ gcc --version
gcc (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3