Потому что компилятор размещает переменную xInit по адресу памяти, расположенному следом за адресом последнего элемента массива.Вопрос был почему так выходит только при такой комбинации когда массив из пяти, пишется значение в шестой и возникает неправильное значение в булевской переменной, которая не относится к этому массиву. Если писать в седьмой или любой другой, которого тоже нет, то ошибки не возникает. Ошибка если только в шестой.
Cедьмой, восьмой и другие несущестующие элементы соответствуют другим адресам памяти, которые не имеют отношения к переменной xInit.
Вы, видимо, просто не выполняете команду Проект - Очистить все при внесении изменений - в этом случае компилятор, вероятно, не перераспределяет адреса.То что значение переменной wX попадает в xInit это сразу было понятно. Непонятно почему оно туда попадает только когда массив из 5 элементов и значение пишется в шестой. Если сделать массив из 4 элементов, и писать в пятый или в любой другой, то ошибка не появляется. В этом и мистика для меня лично.
2021-04-15_6-27-10.png
Естественно, никакой "мистической комбинации" нет, и такое поведение будет воспроизводиться при любой размерности массива:
2021-04-15_6-23-42.png 2021-04-15_6-25-38.png 7777777777.png