В первом случае существуют два double
(x
, а тот, на который указывает y
).x
выделяется в стеке, а y
- в куче.
В последнем существует только один double
(x
, на который также указывает y
).Здесь нет выделений кучи.
Итак, на первый взгляд, вы правы.
В обоих случаях существует один double
настек, и один double*
также в стеке.Разница между ними заключается в том, что в первом случае в куче выделяется , а также a double
(тот, который выделен new double(x)
).Поэтому первый случай требует больше памяти.