Думаю, в этом все сказано. Примером может служить пример, охватывающий большинство стандартов от C89 до C11. Я, хотя и об этом, но, я думаю, это просто поведение undefined:
#include <stdio.h>
int main( int argc, char* argv[] )
{
const char *s = NULL;
printf( "%c\n", s[0] );
return 0;
}
EDIT:
Поскольку некоторые голоса запрашивали разъяснение: я хотел иметь программу с обычной ошибкой программирования (самым простым из которых я мог бы считать segfault), который гарантирован (стандартным) для прерывания. Это немного отличается от минимального вопроса о segfault, который не заботится об этом страховании.