Resultados de la búsqueda a petición "undefined-behavior"

5 la respuesta

¿Por qué este bucle produce "advertencia: la iteración 3u invoca un comportamiento indefinido" y genera más de 4 líneas?

Compilando esto: #include <iostream> int main() { for (int i = 0; i < 4; ++i) std::cout << i*1000000000 << std::endl; }ygcc produce la siguiente advertencia: warning: iteration 3u invokes undefined behavior [-Waggressive-loop-optimizations] ...

2 la respuesta

¿Cuándo invocar una función miembro en una instancia nula da como resultado un comportamiento indefinido?

Considere el siguiente código: #include <iostream> struct foo { // (a): void bar() { std::cout << "gman was here" << std::endl; } // (b): void baz() { x = 5; } int x; }; int main() { foo* f = 0; f->bar(); // (a) f->baz(); // (b) }Esperamos(b) ...

8 la respuesta

¿Cuál es la forma correcta de encontrar el promedio de dos valores?

Recientemente aprendí que el desbordamiento de enteros es un comportamiento indefinido en C (pregunta secundaria: ¿también es UB en C ++?) A menudo, en la programación en C, necesitas encontrar el promedio de dos valoresa yb. Sin embargo ...

3 la respuesta

GOTO antes de la variable local

¿El siguiente código constituye un comportamiento indefinido, ya que estoy saltando antes de la declaración de variable y la uso a través de un puntero? Si es así, ¿hay diferencias entre los estándares? int main() { int *p = 0; label1: if (p) { ...

6 la respuesta

Mezcla de clase y estructura

Soy muy consciente de ladiferencia entre clase y estructura [https://stackoverflow.com/questions/54585/when-should-you-use-a-class-vs-a-struct-in-c] , sin embargo, estoy luchando para decir con autoridad si esto está bien definido: // declare ...

4 la respuesta

¿Qué sucede si anula la referencia a `new int`?

¿Es seguro lo siguiente? *(new int);Me sale como0.

3 la respuesta

¿Es la falla de segmentación un comportamiento indefinido real cuando nos referimos a un miembro de datos no estático?

Había leído la siguiente regla y he estado tratando de escribir un ejemplo, que refleja uno. La regla es de 3.8 / 5 N3797: Antes de que comience la vida útil de un objeto, pero después de que se haya asignado el almacenamiento que ocupará el ...

1 la respuesta

¿Por qué el código llama explícitamente a un método estático a través de un puntero nulo?

He visto código como este en un par de proyectos antiguos: class Class { static void Method() {} }; ((Class*)0)->Method();Este código contiene un comportamiento indefinido porque incluye desreferenciar un puntero nulo (pase lo que pase después). ...

3 la respuesta

Incremento de una constante en C ++

¿Alguien puede explicarme por qué funciona este código? Siento que el compilador no debería permitirme hacer lo que he hecho (mover un puntero int para apuntar a una constante int), o alternativamente, al menos esperaría una advertencia ...

3 la respuesta

punteros colgantes de realloc () y comportamiento indefinido

Cuando liberas memoria, ¿qué sucede con los punteros que apuntan a esa memoria? ¿Se vuelven inválidos de inmediato? ¿Qué pasa si luego vuelven a ser válidos? Ciertamente, el caso habitual de que un puntero se vuelva inválido y luego se vuelva ...