¿Cuál es el código C ++ más corto y bien formado que exhibe un comportamiento indefinido?
code-challenge
c++
Luchian Grigore
fuente
fuente

Respuestas:
Editar: esto es diagnosticable, así que no UB.
Aquí
^Lestá el carácter de fuente de formulario, que es parte del conjunto de caracteres básico. 4 caracteres (no se requiere una nueva línea por 2.2: 2). El comportamiento indefinido es porfuente
Tiene ocho caracteres y tiene un comportamiento indefinido, según §2.2 / 1.
fuente
main.main. Es difícil hacer cumplir las reglas cuando solicitas un programa que no tiene reglas que seguir (¡eso es lo que significa UB!).mainlo que tienes está mal formado.§16.2 / 4:
fuente
Explicación:
C ++ 98 y C ++ 11 §5.8 / 1 afirman que
fuente
inttípicamente de 32? cambiar el RHS del cambio a-1es el mismo número de caracteres y no dependerá de los tamaños de los números enterosSi uno debe creer en Wikipedia, aquí hay algunos:
Se dice que modificar cadenas provoca un comportamiento indefinido. Siempre me ha funcionado.
Una función no nula sin retorno produce valores de retorno indefinidos.
La división (de int?) Por cero está supuestamente indefinida. Todo lo que sé es que se bloquea.
fuente
int main(){}mínimo.char **nochar *. Simplemente está modificando parte de un valor de puntero. De hecho,argvse garantiza que se puede modificar de forma segura.char *argv[]no tener ningúnconstcalificador. Podría bloquearse escribiendo en un literal de cadena conint main(){char *v="";*v=1;}fuente