Qual parte do dereferenciamento de ponteiros NULL causa comportamento indesejado?
Estou curioso para saber qual parte da desreferência de um pulo NULL causa um comportamento indesejado. Exemplo:
// #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
Aqui vemos em # 2 que eu realmente não tentei acessar dados ou uma função de b, então isso ainda causaria um comportamento indesejado se * b apenas resolvesse para NULL e nós estivéssemos passando NULL para anotherfunc ()?