Это просто Undefined Behaviour
. Есть некоторые проблемы, связанные с памятью (например, доступ к массиву за пределами ...), когда C / C ++ просто говорит, что должно произойти, если все правильно доступно, а все остальное остается неопределенным. Так что это может когда-нибудь сработать, а может и нет.
Точно, как уже упоминалось выше, с вашей стороны существует двусмысленность, которая приводит к неопределенному поведению.