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

1 la respuesta

¿Cuál es el comportamiento de escribir un carácter que no se imprime en C / C ++?

¿Es el comportamiento de escribir un carácter no imprimible indefinido o definido por la implementación, si el carácter se escribe a través deprintf/fprintf? Estoy confundido porque las palabras en el estándar C N1570 / 5.2.2 solo hablan de la ...

2 la respuesta

¿El desbordamiento de enteros no está definido en el ensamblaje en línea x86?

Digamos que tengo el siguiente código C: int32_t foo(int32_t x) { return x + 1; }Este es un comportamiento indefinido cuandox == INT_MAX. Ahora digamos que realicé la adición con el ensamblaje en línea en su lugar: int32_t foo(int32_t x) { ...

3 la respuesta

¿Qué significa la [Nota] en el párrafo de comportamiento indefinido en el estándar C ++?

Comousuario Tony [https://stackoverflow.com/users/410767/tony] Señala [https://stackoverflow.com/questions/4265167/is-a-c-compiler-allowed-to-emit-random-code-once-it-encounters-a-construct-that/4272482#4272482] hay una [Nota] en el párrafo ...

3 la respuesta

Detectar referencias colgantes a temporales

Clang 3.9 reutiliza extremadamente la memoria utilizada por los temporales. Este código es UB (código simplificado): template <class T> class my_optional { public: bool has{ false }; T value; const T& get_or_default(const T& def) { return has ? ...

4 la respuesta

¿Este código en C cae en la categoría Comportamiento indefinido?

a es una matrizfoo es una función yi es unint. a[++i] = foo(a[i-1], a[i]);¿El código anterior tiene unComportamiento indefinido? Los índices de la matriz++i, i-1 yi, están garantizados para estar en el rango de la matriz.

7 la respuesta

¿Dónde dice exactamente el estándar C ++ que desreferenciar un puntero no inicializado es un comportamiento indefinido?

Hasta ahora no puedo encontrar cómo deducir que lo siguiente: int* ptr; *ptr = 0;Es un comportamiento indefinido. En primer lugar, hay 5.3.1 / 1 que establece que* significa indirección que convierteT* aT. Pero esto no dice nada sobre ...

7 la respuesta

El comportamiento de la división de coma flotante por cero

Considerar #include <iostream> int main() { double a = 1.0 / 0; double b = -1.0 / 0; double c = 0.0 / 0; std::cout << a << b << c; // to stop compilers from optimising out the code. }Siempre he pensado quea será + Inf,b será -Inf, yc será NaN. ...

2 la respuesta

Diferencia entre comportamiento indefinido y mal formado, no se requiere mensaje de diagnóstico

El estándar C ++ viene con una sorprendente cantidad de definiciones parapoco claro1 comportamiento que significa más o menos lo mismo con diferencias sutiles. Leyendoesta respuesta [https://stackoverflow.com/a/22177425/572743], Noté la ...

7 la respuesta

Evaluar la condición que contiene el puntero unitario - UB, pero ¿puede bloquearse?

En algún lugar de los foros encontré esto: Any attempt to evaluate an uninitialized pointer variable invokes undefined behavior. For example: int *ptr; /* uninitialized */ if (ptr == NULL) ...; /* undefined behavior */¿Qué se quiere decir aquí? ...

6 la respuesta

Orden de evaluación de argumentos en la función de llamada?

Estoy estudiando sobre el comportamiento indefinido en C y llegué a una declaración que dice que no hay un orden particular de evaluación de argumentos de función pero ¿qué pasa con las convenciones de llamadas estándar como_cdecl ...