Ответ 1
Он должен работать бесконечно. На большинстве платформ, когда памяти больше нет, malloc()
будет возвращать 0, поэтому цикл будет продолжать работать без изменения объема выделенной памяти. Linux позволяет перенаправлять память, чтобы вызовы malloc()
продолжали добавлять в виртуальную память. Процесс может в конечном итоге быть убит OOM Killer, когда данные, которые malloc()
использует для администрирования памяти, начинают вызывать проблемы (это будет не потому, что вы пытаетесь использовать выделенную память, потому что код ее не использует), но Linux не рассматривается как платформа в вопросе.