Алексей Мусин (15.01.2009 11:19, просмотров: 182) ответил Alex B. на все равно не понимаю. Если это не влияет
Ну вот вы и попались :) Сравнивать с NULL опасно, если указатель на дальнюю память.
Например, модель памяти 16-разрядная, но есть еще дальняя память, адресуемая через - 24 или 32 бита.
Также может оказаться, что в хидере компилятора есть
#define NULL (void *)0
Тогда сравнение
if (p == NULL)
будет работать только для младших 16 разрядов указателя - вы "не отличите" указатели на разные банки.