undefined-behavior

¿Por qué es f(i = -1, i = -1) comportamiento indefinido?

Estaba leyendo sobre el orden de las violaciones de evaluación, y dan un ejemplo que me desconcierta. 1) Si un efecto se ... eramos operadores de asignación sobrecargados (en lugar de solo escalares simples), entonces también podemos tener problemas.

¿Cuál es la estricta regla de aliasing?

Al preguntar sobre el comportamiento común indefinido en C, las almas más iluminadas de lo que me referí a la estricta regla de aliasing. ¿De qué están hablando?

¿Por qué el desbordamiento de enteros en x86 con GCC causa un bucle infinito?

El siguiente código entra en un bucle infinito en GCC: #include <iostream> using namespace std; int main(){ int i ... movq %rbx, %rdi addl $1, %r12d call _ZNSo3putEc movq %rax, %rdi call _ZNSo5flushEv cmpl $3, %r12d jne .L5

¿Por qué esto para loop sale en algunas plataformas y no en otras?

Recientemente he empezado a aprender C y estoy tomando una clase con C como asignatura. Actualmente estoy jugando con bucles ... . Simplemente no puedo entender cómo el comportamiento puede ser diferente en diferentes sistemas operativos y computadoras.

¿Cuáles son todos los comportamientos indefinidos comunes que un programador de C++ debería conocer? [cerrado]

¿Cuáles son todos los comportamientos indefinidos comunes que un programador de C++ debería conocer? Digamos, como: a[i] = i++;

¿Por qué estas construcciones usan un comportamiento indefinido antes y después del incremento?

#include <stdio.h> int main(void) { int i = 0; i = i++ + ++i; printf("%d\n", i); // 3 i = 1; i = (i++) ... 2 2 int x[2] = { 5, 8 }, y = 0; x[y] = y ++; printf("%d %d\n", x[0], x[1]); // shouldn't this print 0 8? or 5 0? }

¿Cómo obtuve un valor mayor que 8 bits de tamaño de un entero de 8 bits?

Rastreé un insecto extremadamente desagradable escondido detrás de esta pequeña joya. Soy consciente de que, según la especif ... c: -297 c: -298 // <= Getting ridiculous now. c: -299 c: -300 c: -45 // <= .......... Échale un vistazo a ideone.

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

Considere el siguiente código: #include <iostream> struct foo { // (a): void bar() { std::cout << "gman ... comportamiento indefinido. ¿(a) resulta en un comportamiento indefinido? ¿Qué pasa si ambas funciones (y x) son estáticos?

¿El" hackeo estructural " es técnicamente indefinido?

Lo que estoy preguntando es el conocido truco de "el último miembro de una estructura tiene longitud variable". Dice algo com ... 99 para esto, me gustaría que las respuestas se adhieran específicamente a la versión del truco como se indica anteriormente.

¿Imprimir punteros nulos con %p es un comportamiento indefinido?

¿Es un comportamiento indefinido imprimir punteros nulos con el especificador de conversión %p? #include <stdio.h> i ... id *p = NULL; printf("%p", p); return 0; } La pregunta se aplica al estándar C, y no a las implementaciones de C.

Acceder a miembro inactivo del sindicato y comportamiento indefinido?

Tenía la impresión de que acceder a un miembro union que no sea el último conjunto es UB, pero parece que no puedo encontrar ... e de las respuestas que afirman que es UB pero sin ningún soporte del estándar). Entonces, ¿es un comportamiento indefinido?

¿Por qué printf("%f",0); da un comportamiento indefinido?

La declaración printf("%f\n",0.0f); Imprime 0. Sin embargo, la declaración printf("%f\n",0); Imprime valores aleatori ... iteral in printf causa este comportamiento? P.d. el mismo comportamiento se puede ver si uso int i = 0; printf("%f\n", i);

¿En qué punto del bucle el desbordamiento de enteros se convierte en un comportamiento indefinido?

Este es un ejemplo para ilustrar mi pregunta que implica un código mucho más complicado que no puedo publicar aquí. #include ... ? (Etiquetado C y C++ aunque son diferentes porque estaría interesado en respuestas para ambos lenguajes si son diferentes.)

¿Pueden las ramas con comportamiento indefinido ser asumidas inalcanzables y optimizadas como código muerto?

Considere la siguiente declaración: *((char*)NULL) = 0; //undefined behavior Claramente invoca un comportamiento indefini ... eso. Toda la instrucción if podría optimizarse. ¿Se permite este tipo de razonamiento hacia atrás de acuerdo con el estándar?

Comportamiento indefinido y puntos de secuencia recargados

Considere este tema una secuela del siguiente tema: Entrega anterior Comportamiento indefinido y puntos de secuencia Re ... return *this; } Index & inc() { state++; return *this; } };

¿Ha cambiado el estándar C++ con respecto al uso de valores indeterminados y comportamiento indefinido en C++14?

Como se describe en ¿La inicialización implica la conversión lvalue a rvalue? Es int x = x; UB? el estándar C++ tiene un eje ... en C++14 con respecto a los valores indeterminados y el comportamiento indefinido que ha impulsado este cambio en el ejemplo?

¿Está accediendo a un array 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á ... o es cierto en VSE, en el que la mayoría de los valores son 0 pero algunos tienen un valor aleatorio como Vyktor ha señalado.

¿Por qué es esto un comportamiento indefinido?

Mi respuesta a esta pregunta fue esta función: inline bool divisible15(unsigned int x) { //286331153 = (2^32 - 1) / 15 ... s pruebas se confirmó que es más rápido que tomar el resto de la división por 15. (Sin embargo no en todos los compiladores)

Detección de desbordamiento firmado en C / C++

A primera vista, esta pregunta puede parecer un duplicado de ¿Cómo detectar el desbordamiento de enteros?, sin embargo, en r ... ed, y realizar comprobaciones rodando su propia aritmética de complemento de dos, pero no estoy muy seguro de cómo hacer eso.

(Por qué) ¿usar una variable no inicializada es un comportamiento indefinido?

Si tengo: unsigned int x; x -= x; Está claro que x debería ser cero después de esta expresión, pero dondequiera que mire, ... or de basura que considerara "útil" dentro de la variable, y funcionaría según lo previsto... ¿qué tiene de malo ese enfoque?