Следующий код создает объект в стеке:
Object o;
При создании объекта в куче мы можем использовать :
Object* o;
o = new Object();
, а не:
Object* o = new Object();
Когда мы разделяем объект кучи -создание над две строки и вызвать конструктор во второй строке (o = new object()
), значит ли это, что в первой строке(Object* o
)указатель был создан в стеке? Итак, Object o
помещает объект в стек, тогда как Object* o
помещает в стек указатель на будущий объект?
Мой второй вопрос касается того, вызывались ли две строки кода вне класса. Недавно я прочитал(Глобальное управление памятью в C в стеке или куче?)что глобальные переменные содержатся не в стеке/куче, а в другой части памяти? Если это так, будет ли Object* o
создавать указатель, который будет находиться в этой другой части памяти и указывать на объект кучи?