Значение NULL
может быть определено несколькими различными способами. Иногда это может быть просто присвоение значения 0
указателю, в какой момент происходит неявное преобразование из целочисленного в тип указателя, в других случаях оно определяется приведением типа, например (void*)0
, что позволяет преобразовать его в любой другой тип указателя, но он не работает, если вы явно назначаете его типу, не являющемуся указателем, и в C ++ 11 есть специальный глобальный объект nullptr
, который можно использовать для инициализации указателя со значением «NULL».
В общем, то, как вы инициализируете указатель, сбивает с толку и не является рекомендуемой практикой кодирования. Просто явно присвойте указателю nullptr
или NULL
, и если вы выберете NULL
, убедитесь, что вы включили <cstddef>
, если вы не включили какие-либо другие заголовочные файлы, чтобы избежать ошибок компиляции.