В чем причина этого? Я думал, что если указатель равен нулю, остальное условие не будет оцениваться.Почему это обусловлено причиной сбоя seg?
// doesn't work:
char *ptr = somefunction();
if (ptr && ptr[0] == '1' || ptr[0] == 't')
// ...
// does work:
char *ptr = somefunction();
if (ptr)
if (ptr[0] == '1' || ptr[0] == 't')
// ...
Не ваша проблема здесь, но обратите внимание, что только потому, что указатель не равен null, это не значит, что он действителен ... –