Я знаю, что в c++ локальные первичные типы размещаются в стеке, а new
настраиваемый класс размещается в куче.
Но что, если создать первичную переменную через new
, будет ли она размещена в куче или останется в стеке?
например:
function void test() {
int *pi = new int(1);
}
Я знал, что в стеке функции есть указатель pi
.
Но как насчет объекта, на который он указывает (он же *pi
), находится ли он в стеке или в куче?
Интересно, похож ли он на основной тип оболочки (например, Integer
) из Java.
Предпосылка вашего вопроса показывает, что ваше понимание является неточным. Нет ничего, что не могла бы исправить хорошая книга по C++.
Что такое первичный тип?
@StoryTeller Я не программист на С++, просто сейчас пытаюсь улучшить этот навык, спасибо за рекомендацию.
Я не был уверен, чего именно вы хотели, но переместил свой комментарий в ответ.
@Someprogrammerdude Я пытаюсь узнать, когда
new
применяется к первичному типу в С++, похоже ли это на случай первичного типа оболочки в Java (например, Integer), и, согласно вашему ответу, это так.Возможный дубликат стека, статики и кучи в C++