Копировать содержимое указателя в переменную стека - PullRequest
0 голосов
/ 18 сентября 2018

У меня есть это сомнение, которое пришло мне в голову.Это возможно?Рассмотрим этот код:

int* p;
int j = 9;
p = &j;
// is it possible to declare int x and store inside 9?
// so if I do delete p; that value is stored in x

Заранее спасибо и всего наилучшего

1 Ответ

0 голосов
/ 18 сентября 2018

Вы определенно можете прочитать значение, к которому относится p, и скопировать его в другое int, например так:

int x = *p;

// The value has been copied, j and hence *p aren't affected by changes to x:
++x;
assert(x > *p);

Однако вы определенно не хотите delete p, потому что ононе выделяется куча с new.Вместо этого p указывает на j, а j имеет время жизни, автоматически управляемое окружающей областью.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...