Если указатель установлен на nullptr
, это означает, что ему не был дан объект, на который он указывает, и вместо этого ему было присвоено значение «по умолчанию». Возможно, указатель мог not быть назначен nullptr
и в то же время не назначен действительному объекту, но в этом случае определить его невозможно. Например:
С nullptr
:
int *ptr = nullptr;
// check if pointer is unassigned to an object
if (ptr == nullptr) ptr = new int{0};
Без nullptr
:
int *ptr;
// using ptr while uninitialized is Undefined Behavior!
if (ptr != &some_object)