Resultados de la búsqueda a petición "undefined-behavior"
¿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] ...
¿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) ...
¿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 ...
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) { ...
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 ...
¿Qué sucede si anula la referencia a `new int`?
¿Es seguro lo siguiente? *(new int);Me sale como0.
¿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 ...
¿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). ...
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 ...
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 ...