¿Qué valores de x e y causarán un bloqueo con algunos compiladores de C?
int f(int x, int y) {
return (y==0) ? 0 : (x/y);
}
c
programming-puzzle
division
Ugoren
fuente
fuente
Respuestas:
-2147483648 (INT_MIN) y -1
$ gcc -Wall division.c && ./a.out # => zsh: excepción de coma flotante ./a.out
fuente
La respuesta correcta ya está dada, pero inmediatamente pensé en Microsoft Pex .
Después de agregar su rompecabezas en el sitio de sandbox, encuentra la respuesta en unos segundos, igual que la respuesta de eregons. (haga clic en preguntar pex)
Nota: lo hace en C #, pero el lenguaje no es realmente relevante.
fuente
(x/y)
y saber queINT_MIN
,-1
,0
etc, son todos los casos de problemas de esa expresión, y tratar de aplicar ingeniería inversa a una manera de producir esos valores en el momento de la evaluación.