Исправление KivApple, (текущая версия) :
char *s = malloc(N);
s[N - 1] = 0;
При больших N и доле везения может и не упасть.
А даже то что падает может упасть в совершенно неподходящий момент.
Переопределить malloc, чтобы делал abort при NULL звучит гораздо разумнее.
Падение при NULL это как ремень безопасности. Спасает, но с оговорками. И уж точно врезаться в столб с мыслью «я же пристегнут» не стоит.
Исправление KivApple, :
char *s = malloc(N);
s[N - 1] = 0;
При больших N и доле везения может и не упасть.
А даже то что падает может упасть в совершенно неподходящий момент.
Переопределить malloc, чтобы делал abort при NULL звучит гораздо разумнее.
Падение при null это как ремень безопасности. Спасает, но с оговорками. И уж точно врезаться в столб с мыслью «я же пристегнут» не стоит.
Исходная версия KivApple, :
char *s = malloc(N); s[N - 1] = 0;
При больших N и доле везения может и не упасть.
А даже то что падает может упасть в совершенно неподходящий момент.
Переопределить malloc, чтобы делал abort при NULL звучит гораздо разумнее.