O & * N, ULL está bem definido em C?
Em que versão (s) dos padrões C (se houver) é a seguinte bem definida?
void foo(void) {
char *nullPtr = NULL;
&*nullPtr;
}
Observe que não estou atribuindo o resultado a nada - a segunda linha é uma declaração simples.
estedevemos seja uma pergunta com uma resposta óbvia, mas (como parece acontecer com muita frequência nessas perguntas), ouvi muitas pessoas dizerem que a resposta é "obviamente indefinida" como "obviamente definida".
Em uma nota bastante relacionada, o que dizer do seguinte? Devemosfoo
produzir uma leitura de c?
extern volatile char c;
void bar(void) {
volatile char *nonnullptr = &c;
&*nonnullptr;
}
(Versão C ++ da mesma pergunta:O & * NULL está bem definido em C ++?)