Мне интересно, что говорит о коде С++:
int* ptr = NULL;
int& ref = *ptr;
int* ptr2 = &ref;
На практике результат состоит в том, что ptr2
является NULL, но мне интересно, это просто деталь реализации или это хорошо определено в стандарте?
В разных случаях разыменование указателя NULL должно приводить к сбою, но здесь я разыгрываю его, чтобы получить ссылку, которая реализуется компилятором в качестве указателя, поэтому на самом деле нет никакого разыменования NULL.