Кстати, под виндой фокус с интами в динамической памяти к утечке не приводит, она начинает чуть расти где-то на 100-200 Мб и сбрасывается обратно, хотя цикл продолжает работать. А вот если выделять массивы интов, то память хорошо утекает.
Я бы про стек задал пару вопросов. 1 - есть опции сборки позволяющие менять дефолтный размер стека? 2 - можно добиться от ОС динамического увеличения размера стека при достижении предела текущего?
1. Есть - во всяком случае в posix thread(pthread) есть возможность менять размер стека (pthread_attr_setstacksize()). 2. Нет. После достижения пределе - stack overflow - переполнение стека - ошибка, приводящая к аварийному завершению программы(процесса).
Ребят, мне нужно очень глубоко разобраться во взаимодействии плюсов и памяти. Есть какие-то интересные ресурсы для этого или просто гуглить? Кстати, спасибо большое за лекции!
en.cppreference.com/w/cpp/language/storage_duration#Static_local_variables Variables declared at block scope with the specifier static or thread_local(since C++11) have static or thread(since C++11) storage duration but are initialized the first time control passes through their declaration (unless their initialization is zero- or constant-initialization, which can be performed before the block is first entered).
Студентам перед лекциями нужно уши чистить. Максимально идиотские вопросы от очевидных зевак. Будь я на месте Ильи уже бы наверное рвал и метал от таких вопросов.