Resultados da pesquisa a pedido "undefined-behavior"
* & ++ causa comportamento indefinido no C ++ 03?
Nooutra resposta [https://stackoverflow.com/a/17400329/1505939]foi afirmado que antes do C ++ 11, ondei é umint, use a expressão: *&++icausou um comportamento indefinido. Isso é verdade? Por outro lado, houve uma pequena discussão nos ...
É um comportamento indefinido pegar o endereço de um ponteiro não inicializado?
N1570 afirma que este é um comportamento indefinido: §J.2 / 1 O valor de um objeto com duração de armazenamento automático é usado enquanto é indeterminado (6.2.4, 6.7.9, 6.8). E, neste caso, nosso ponteiro tem um valor indeterminado: §6.7.9 / ...
Não avaliar a expressão à qual sizeof é aplicado torna legal desreferenciar um ponteiro nulo ou inválido dentro de sizeof em C ++?
Primeiro de tudo, eu viesta pergunta sobre C99 [https://stackoverflow.com/q/19785518/57428]e as referências de resposta aceitasoperando não é avaliado redação no rascunho da Norma C99. Não tenho certeza se esta resposta se aplica ao C ++ 03. Há ...
Uma carga desalinhada devido a um comportamento indefinido da conversão?
É uma carga desalinhada devido a uma conversão devoid* comportamento indefinido? Aqui está o que estou vendo com Clang e seus desinfetantes: bufhelp.h:146:29: runtime error: load of misaligned address 0x7fff04fdd0e1 for type 'const uintptr_t' ...
Por que podemos escrever fora dos limites em C?
Recentemente, terminei de ler sobre memória virtual e tenho uma pergunta sobre como o malloc funciona no espaço de endereço virtual e na memória física. Por exemplo (código copiado de outra postagem do SO) void main(){ int *p; ...
Isso evita UB
Esta questão é mais acadêmica, visto que não há razão válida para escrever sua própriaoffsetof macro mais. No entanto, eu vi essa implementação caseira aparecer aqui e ali: #define offsetof(s, m) ((size_t) &(((s *)0)->m))Que é, tecnicamente ...
Um comportamento indefinido pode seguir um getc () alterar o comportamento do programa se o getc () sair via SIGINT
Sob interpretações modernas de "Comportamento indefinido", um compilador tem o direito de assumir que nenhuma cadeia de eventos que tornaria "inevitável" um comportamento indefinido ocorrerá e pode eliminar o código que seria aplicável apenas nos ...
Exemplo de erro causado por UB ao incrementar um ponteiro NULL
Este código: int *p = nullptr; p++;causar comportamento indefinido, conforme discutido emO incremento de um ponteiro nulo está bem definido? [https://stackoverflow.com/q/29825352/3545273] Mas, ao explicar aos colegas por que eles devem evitar o ...
A liberação de um int * que foi atribuído a um caractere * (alocado por `malloc`) invoca o comportamento indefinido?
O título pode ser confuso. Suponhastr é um ponteiro alocado pormalloc. ptr, do tipoint*, é atribuído a ele e é liberado, como mostra o snippet de código abaixo: char* str = malloc(64); int* ptr = str; free(ptr);Eu tentei compilar o código acima. ...
Como identificar um comportamento indefinido
Existe alguma maneira de saber se você programa com comportamento indefinido em C ++ (ou mesmo C), além de memorizar toda a especificação? A razão pela qual pergunto é que notei muitos casos de programastrabalhando na depuração, mas não na ...