Ваша программа перешла в неопределенное и ошибочное поведение. Зачем ожидать одинаковый результат в разных операционных системах?
Если во время выполнения на каждой из этих машин происходит что-то даже немного отличающееся, это может привести к тому, что один из них зависнет, а другой немедленно выйдет из строя.
Возможно, время выполнения, которое использует программа, немного отличается на этих машинах / операционных системах. Возможно, другие аспекты операционной системы оказывают влияние (например, рандомизация размещения адресного пространства ).
Я подозреваю, что только кто-то с очень глубоким знанием времени выполнения и менеджера кучи мог точно ответить, почему есть разница.
Честно говоря, моя внутренняя реакция на этот вопрос такова: вам не следует тратить слишком много времени на беспокойство о том, почему сбой программы различается в этих двух операционных системах, потому что вы никогда не должны писать такую программу, как эта. *