C maneira padrão compatível para acessar o endereço do ponteiro nulo?

Em C, diferindo oPonteiro nulo é Comportamento indefinido, no entanto, o valor do ponteiro nulo tem uma representação de bits que, em algumas arquiteturas, aponta para um endereço válido (por exemplo, o endereço 0).
Vamos chamar esse endereço deendereço de ponteiro nulo, por uma questão de clareza.

Suponha que eu queira escrever um software em C, em um ambiente com acesso irrestrito à memória. Suponha ainda que eu queira escrever alguns dados no endereço do ponteiro nulo:como eu conseguiria isso de uma maneira compatível com os padrões?

Caso de exemplo (IA32e):

#include <stdint.h>

int main()
{
   uintptr_t zero = 0;

   char* p = (char*)zero;

   return *p;
}

Este código quando compilado com o gcc com-O3 para IA32e é transformado em

movzx eax, BYTE PTR [0]
ud2

devido a UB (0 é a representação de bit do ponteiro nulo).

Como C está próximo da programação de baixo nível, acredito que deve haver uma maneira de acessar o endereço do ponteiro nulo e evitar UB.

Só para ficar claro
Estou perguntando sobre o que o padrão tem a dizer sobre isso,NÃO como conseguir isso de uma maneira definida pela implementação.
Eu sei a resposta para o último.

questionAnswers(0)

yourAnswerToTheQuestion