Я работал над книгой языка программирования Kernighan / Ritchie C (2-е издание), и в примере в главе 1.6 на стр. 22 я столкнулся с каким-то странным (по крайней мере для меня) поведением, основанным на допущенной мной ошибке .
Ошибка состояла в том, что я объявил int ndigit[10]
, но пропустил цикл for, который устанавливает все целые числа в массиве на ноль.
Странно то, что первые 8 значений в массиве работают правильно, по умолчанию 0, но последние два значения по умолчанию - -373429304 и 32766. Это привело к тому, что функция подсчета цифр в программе работала, как и предполагалось, кроме отсчеты 8 и 9 с
Я исправил свою ошибку и исправил ее, но мне все еще любопытно, почему первые 8 значений, равные 0, но последние два значения были совершенно разными?