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

1 la respuesta

Código C con resultados indefinidos, el compilador genera código no válido (con -O3)

Sé que cuando haces ciertas cosas en un programa C, los resultados son indefinidos. Sin embargo, el compilador no debería generarinválido (máquina) código, ¿verdad? Sería razonable si el código hiciera algo incorrecto, o si el código generara un ...

4 la respuesta

¿El comportamiento indefinido realmente ayuda a los compiladores modernos a optimizar el código generado?

¿No son los compiladores modernos lo suficientemente inteligentes como para poder generar un código que sea rápido y seguro al mismo tiempo? Mira el código a continuación: std::vector<int> a(100); for (int i = 0; i < 50; i++) { a.at(i) = i; } ...

8 la respuesta

¿Está accediendo a una matriz global fuera de su comportamiento indefinido?

Acabo de tener un examen en mi clase hoy --- leyendo el código C y la entrada, y la respuesta requerida fue lo que aparecerá en la pantalla si el programa realmente se ejecuta. Una de las preguntas declaradasa[4][4] como una variable global y en ...

5 la respuesta

¿Cuándo la conversión entre tipos de puntero no es un comportamiento indefinido en C?

Como recién llegado a C, estoy confundido acerca de cuándo lanzar un puntero está realmente bien. Según tengo entendido, puedes lanzar prácticamente cualquier tipo de puntero a cualquier otro tipo, y el compilador te permitirá hacerlo. Por ...

2 la respuesta

¿Es sum +++ i comportamiento indefinido en C? [duplicar]

Esta pregunta ya tiene una respuesta aquí: ¿Por qué no funciona a +++++ b? [/questions/5341202/why-doesnt-ab-work] 8 respuestasProbé esto en diferentes máquinas y en diferentes compiladores, pero di la misma salida: int sum = 10, i = 5; ...

1 la respuesta

C ++ 11: cadena (50, 'x') versus cadena {50, 'x'}

Como se ve enideona [http://ideone.com/VIBlPE]: cout << string(50, 'x'); // xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx cout << string{50, 'x'}; // 2xWAT ?? He descubierto que 50 es ASCII '2', así que: cout << static_cast<int>('2'); // ...

1 la respuesta

¿La llamada scanf no verificada puede causar un comportamiento indefinido?

¿El siguiente fragmento invoca un comportamiento indefinido en caso de error? #include <stdio.h> int main() { int i; /* Indeterminate */ if (scanf("%d", &i) == 1) /* Initialize */ printf("%d\n", i); /* Success! Print read value */ ...

16 la respuesta

¿Por qué exactamente se llama al destructor por segunda vez comportamiento indefinido en C ++?

Como se menciona enesta respuesta [https://stackoverflow.com/questions/2763275/is-the-c-compiler-optimizer-allowed-to-break-my-destructor-ability-to-be-called/2763298#2763298] simplemente llamar al destructor por segunda vez ya es un ...

2 la respuesta

¿Cómo determino de manera segura y sensata si un puntero apunta a algún lugar en un búfer especificado?

Estoy buscando implementar una función que determine si un puntero determinado apunta a un búfer dado. La especificación: template <typename T> bool points_into_buffer (T *p, T *buf, std::size_t len);Si hay algunan, 0 <= n && n < len, para cualp ...

1 la respuesta

¿Por qué es válida la inicialización de una nueva variable por sí misma? [duplicar]

Esta pregunta ya tiene una respuesta aquí: ¿Cuál es el comportamiento de una variable no inicializada utilizada como su propio inicializador? [/questions/54200465/whats-the-behavior-of-an-uninitialized-variable-used-as-its-own-initializer] 3 ...