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 ()?