Каково поведение печати 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

Ответы на вопрос(4)

Ваш ответ на вопрос