Исправление monk, 29.04.18 16:04 (текущая версия) :
Правильно
struct foo* p; if (!bar) { p = bar->p; ... }
потому что ((struct bar*)NULL)->p компилироваться не должно.
Исходная версия monk, 29.04.18 16:04:
потому что (struct bar*)NULL->p компилироваться не должно.