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