¿Qué parte de la desreferenciación de los punteros NULL causa un comportamiento no deseado?
Tengo curiosidad por saber qué parte de la anulación de la referencia a un valor nulo provoca un comportamiento no deseado. Ejemplo:
// #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
Aquí vemos en el # 2 que en realidad no intenté acceder a los datos o a una función fuera de b, ¿así que esto todavía causaría un comportamiento no deseado si * b simplemente se resuelve en NULL y estamos pasando NULL a anotherfunc ()?