Понятно, что ошибка над буфером (или создает переполнение), но что происходит, если в 12-байтовом буфере используется менее 12 байтов? Возможно ли, или пустой пудинг всегда заполняется 0s? Ортогональный вопрос, который может помочь: что содержится в буфере при его создании, но еще не используется приложением?
Я просмотрел несколько программ для домашних животных в Visual Studio, и кажется, что они добавлены с 0s (или нулевыми символами), но я не уверен, является ли это реализацией MS, которая может варьироваться в зависимости от языка/компилятора.