Как компилятор выделяет память для объекта класса, который состоит из переменных типа list , которые будут расширяться со временем во время выполнения программы? Кроме того, как компилятор обеспечивает доступность необходимого объема памяти по мере необходимости и предотвращает утечки памяти?