Ponteiro de um byte-off ainda válido em C?
Posso estar enganado, mas me lembro que para uma determinada alocação de memória, por exemplo,
char *p = malloc(4);
o ponteirop
é um ponteiro válido para todos os bytes dentro da alocaçãoe para o primeiro byte além dessa alocação.
Assim, para acessar a memória através do ponteirop
apenas compensaçõesp[0] .. p[3]
é válido. Mas para comparação de ponteiros&( p[4] )
também seria um ponteiro válido.
Isso está correto e em que local do padrão C (ligação) diz isso? Parece que6.5.9 p6 pode indicar a direção certa para a resposta, mas ainda é um pouco confuso.