Как ведет себя печать NULL со спецификатором printf %s?

Наткнулся на интересный вопрос интервью:

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
48
задан Ciro Santilli 新疆改造中心法轮功六四事件 20 July 2015 в 09:15
поделиться