Я всегда думаю, что просто if(p != NULL){..}
выполнит эту работу. Но после прочтения этого вопроса о переполнении стека, похоже, нет.
Итак, канонический способ проверки указателей NULL после поглощения всех обсуждений в этом вопросе, который говорит, что указатели NULL могут иметь ненулевое значение?