Jaka część dereferencji wskaźników NULL powoduje niepożądane zachowanie?

Jestem ciekawy, jaka część dereferencji ptr NULL powoduje niepożądane zachowanie. Przykład:

//  #1
someObj * a;
a = NULL;
(*a).somefunc();   // crash, dereferenced a null ptr and called one of its function
                   // same as a->somefunc();

//  #2
someObj * b;
anotherObj * c;
b = NULL;
c->anotherfunc(*b);   // dereferenced the ptr, but didn't call one of it's functions

Tutaj widzimy w # 2, że tak naprawdę nie próbowałem uzyskać dostępu do danych lub funkcji z b, więc czy nadal powodowałoby to niepożądane zachowanie, jeśli * b po prostu przejdzie do NULL i przekażemy NULL do innegofunca ()?

questionAnswers(16)

yourAnswerToTheQuestion