Каковы некоторые технические различия между памятью, выделенной оператором и памятью new
, которая распределяется через объявление простой переменной, например int var
? Имеет ли С++ какую-либо форму управления автоматической памятью?
В частности, у меня есть пара вопросов. Во-первых, поскольку с динамической памятью вы должны объявить указатель для хранения адреса фактической памяти, с которой работаете, не использует ли динамическая память больше памяти? Я не понимаю, почему указатель нужен вообще, если вы не объявляете массив.
Во-вторых, если бы я сделал простую функцию, например:
int myfunc() { int x = 2; int y = 3; return x+y; }
... И назовите его, освободит ли память, выделенную функцией, как только закончится ее объем существования? Как насчет динамической памяти?