Комментарии 21
происходить бесплатно до тех пор, пока память не начнёт использоваться
Т.е. невозможно предугадать — в какой именно момент программа начнёт жутко тормозить…
Не всё получается написать красиво или вообще написать.
Например, из последнего: мало кто задумывается как в C++ вызываются конструкторы глобальных статических объектов. Причём это находится просто. Следующий шаг: все знают когда вызовется конструктор статического объекта function-scoped — при первом обращении. А вот когда вызывается дестуктор? По стандарту — при завершении программы. Но возникают вопросы: деструкторы должны вызываться в обратном порядке созданию, а это рантайм. Как это реализуется? Мне гугл прямого ответа не дал. А оказывается, тот же GCC использует… atexit :-) и регистрирует генерированные функции вызова деструктора и регистрирует там. atexit уже гарантии правильного вызова даёт, при условии реализации в рантайме.
Это знание помогло небольшую проблему решить. Да, рантайм самописный, минимально-необходимый.
Вот и думай: интересно? Мне кажется — да. А тянет на статью? Мне кажется — нет. Ну и на графоманство время нужно, которого практически нет.
Отладка вашей ОС: урок по выделению памяти