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

6 la respuesta

¿Esto evita UB

Esta pregunta es más académica, ya que no hay una razón válida para escribir la suya.offsetof macro más. Sin embargo, he visto esta implementación local emergente aquí y allá: #define offsetof(s, m) ((size_t) &(((s *)0)->m))Que es, técnicamente ...

1 la respuesta

Puede un comportamiento indefinido que seguiría a un getc () alterar el comportamiento del programa si getc () sale a través de SIGINT

Bajo las interpretaciones modernas de "Comportamiento indefinido", un compilador tiene derecho a suponer que no ocurrirá una cadena de eventos que causaría que el comportamiento indefinido sea "inevitable", y puede eliminar el código que solo ...

4 la respuesta

Ejemplo de error causado por UB de incrementar un puntero NULL

Este código: int *p = nullptr; p++;causar un comportamiento indefinido como se discutió en¿Incrementar un puntero nulo está bien definido? [https://stackoverflow.com/q/29825352/3545273] Pero al explicar a los compañeros por qué deberían evitar ...

4 la respuesta

¿Liberar un int * que fue asignado a un char * (asignado por 'malloc`) invoca Comportamiento Indefinido?

El título puede ser confuso. Suponerstr es un puntero asignado pormalloc. ptrde tipoint*, se le asigna y se libera como se muestra en el fragmento de código a continuación: char* str = malloc(64); int* ptr = str; free(ptr);Intenté compilar el ...

10 la respuesta

Cómo detectar comportamientos indefinidos

¿Hay alguna manera de saber si su programa tiene un comportamiento indefinido en C ++ (o incluso C), salvo memorizar toda la especificación? La razón por la que pregunto es que he notado muchos casos de programas trabajando en depuración pero no ...

5 la respuesta

¿Puede "sizeof (arr [0])" conducir a un comportamiento indefinido?

Hay un patrón bien conocido de calcular la longitud de la matriz: int arr[10]; size_t len = sizeof(arr) / sizeof(arr[0]); assert(len == 10);Este patrón se aplica a matrices estáticas y matrices automáticas de tamaño constante. También se aplica ...

2 la respuesta

i = i ++; es indefinido. ¿I = foo (i ++) también está indefinido?

Por ejemplo: int foo(int i) { return i; } int main() { int i = 0; i = i++; // Undefined i = foo(i++); // ? return 0; }¿Qué especificaría el estándar ISO C ++ actual para este caso? EDITAR: Aquí es donde me confundo: Excepto donde se indique, ...

4 la respuesta

Justificación de las comparaciones de punteros fuera de una matriz para ser UB

Entonces, el estándar (refiriéndose aN1570 [http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1570.pdf]) dice lo siguiente sobre la comparación de punteros: C99 6.5.8 / 5 Operadores relacionales Cuando se comparan dos punteros, el resultado ...

22 la respuesta

Is uninitialized local variable the fastest random number generator?

Sé que la variable local no inicializada es un comportamiento indefinido (UB), y también el valor puede tener representaciones de trampa que pueden afectar la operación posterior, pero a veces quiero usar el número aleatorio solo ...

1 la respuesta

¿La comparación de punteros es un comportamiento indefinido o no especificado en C ++?

La tercera edición del lenguaje de programación C ++ de Stroustrup dice que, La sustracción de punteros se define solo cuando ambos apuntan a elementos de la misma matriz (aunque el lenguaje no tiene una forma rápida de garantizar que sea así). ...