2
Является ли следующий код C++ совместимым со стандартом?Ссылка на указатель разуплотненного
int *p;
p = new int;
int &n = *p;
n = 5;
Кроме того, я прав, полагая, что этот код будет существенно выделять память для междунар, а затем дать имя, в частности, п, в эту ячейку памяти, которая может быть использована как обычная переменная типа INT?
Это правильно. Вы можете распечатать значения с помощью 'cout' и проверить сами. :) – eigenchris
Уверены, ссылки и указатели схожи. Тем не менее, вы запутываете исходный указатель p (будучи выделенным) ссылкой n. Это проблема, если оригинал не освобождается. –
Я подумал об этом, и я подумал, что даже если указатель p потерялся, я мог бы освободить память с помощью 'delete & n'. Я не могу думать о каких-либо ситуациях, когда это действительно поможет. – Vaelus