Resultados da pesquisa a pedido "undefined-behavior"

2 a resposta

sem_post, manipuladores de sinal e comportamento indefinido

Esse uso desem_post () em um manipulador de sinal confiar em comportamento indefinido? /* * excerpted from the 2017-09-15 Linux man page for sem_wait(3) * http://man7.org/linux/man-pages/man3/sem_wait.3.html */ ... sem_t sem; ... static void ...

1 a resposta

Em que ordem as expressões de incremento à direita são avaliadas na declaração de atribuição? Está indefinido?

Recentemente, aprendi sobre comportamento indefinido em C, mas esse código específico foi usado em um site como exemplo de 'vírgula como operador' e, embora eu entenda como y = x ++ na linha 2, não entendo em que ordem as sub expressões na linha ...

3 a resposta

É 1 << 31 bem definido em C quando sizeof (int) == 4

De acordo com a resposta paraestas perguntas [https://stackoverflow.com/questions/3784996/why-does-left-shift-operation-invoke-undefined-behaviour-when-the-left-side-oper] : O resultado deE1 << E2éE1deslocado para a esquerdaE2posições de bit; ...

5 a resposta

Quando a conversão entre tipos de ponteiros não é um comportamento indefinido em C?

Como novato em C, estou confuso sobre quando lançar um ponteiro está realmente correto. Pelo que entendi, você pode praticamente converter qualquer tipo de ponteiro para qualquer outro tipo, e o compilador permitirá que você faça isso. ...

6 a resposta

Misturando classe e estrutura

Eu estou bem ciente dodiferença entre classe e estrutura [https://stackoverflow.com/questions/54585/when-should-you-use-a-class-vs-a-struct-in-c] , no entanto, estou lutando para dizer com autoridade se isso está bem definido: // declare foo ...

4 a resposta

Programa comportando-se estranhamente em IDEs on-line

Encontrei o programa C ++ abaixo (fonte [https://ideone.com/7F88MV]): #include <iostream> int main() { for (int i = 0; i < 300; i++) std::cout << i << " " << i * 12345678 << std::endl; }Parece um programa simples e fornece a saída correta na ...

4 a resposta

Esse código em C se enquadra na categoria Comportamento indefinido?

a é uma matriz,foo é uma função ei é umint. a[++i] = foo(a[i-1], a[i]);O código acima teria umComportamento indefinido? Os índices da matriz++i, i-1 ei, são garantidos para estar no intervalo da matriz.

4 a resposta

O comportamento indefinido realmente ajuda os compiladores modernos a otimizar o código gerado?

Os compiladores modernos não são inteligentes o suficiente para gerar um código rápido e seguro ao mesmo tempo? Veja o código abaixo: std::vector<int> a(100); for (int i = 0; i < 50; i++) { a.at(i) = i; } ...É óbvio que o erro fora de alcance ...

2 a resposta

Diversão com variáveis não inicializadas e compilador (GCC)

A seção §3.9.1 / 6 do padrão C ++ diz: Os valores do tipo bool sãotrue oufalse. Agora considere este código, void f(bool b) { switch(b) //since b is bool, it's value can be either true or false! { case true: cout << "possible value - true"; ...

2 a resposta

Comportamento indefinido no uso repetido do operador prefix ++

Eu li issoresponda [https://stackoverflow.com/a/4176333/6935629]sobre comportamento indefinido, onde vi a seguinte declaração: ++++++i; // UB, parsed as (++(++(++i)))Não acho que seja um comportamento indefinido. Eu tenho uma dúvida, é realmente ...