ОС следит за этим, и если видит, что прога грузит проц в цикле и никак не откликается и не дает ОС никаких признаков жизни (прерывание, сискол, сообщение), ос прекращает мучения. думаю примерно так это происходит
Бесконечный цикл останется бесконечным циклом, никаких вылетов он не вызывает. А вылеты у тебя происходят, потому что ты опять не чистишь стек.
Чего ж оно тогда падает? Тащи код.
его больше нет в живых
🤷 Значит будем по умолчанию считать, что не чистил. По крайней мере, в последние несколько раз ты этого не делал.
по крайней мере int main(){while(1);} замечательно работате
у меня цикл доходил до очень больших повторов
А потом стек заканчивался.
я уверен, что он много раньше бы кончался
А с чего вдруг ему кончаться? Это же не рекурсия
У тебя мегабайт стека по умолчанию (если не настраивал). Ты наверняка забываешь убрать 1-2 аргумента на итерацию. Это 200к итераций.
Я обратился в астрал и увидел там что-то типа: start: push hello call [printf] jmp start
А стек кто затирать будет?
Так стек же после возврата из функции не затирается
Да ты что! А я о чём говорю? А знаешь почему я об этом говорю? А вот почему.
Обсуждают сегодня