Resultados da pesquisa a pedido "undefined-behavior"

2 a resposta

* & ++ 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 ...

5 a resposta

É 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 / ...

3 a resposta

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á ...

2 a resposta

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' ...

6 a resposta

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; ...

6 a resposta

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 ...

1 a resposta

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 ...

4 a resposta

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 ...

4 a resposta

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. ...

10 a resposta

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 ...