En la K & R, capítulo 8, tiene una implementación personalizada de las funciones putc y getc. En la primera definición de getc, si el parámetro es stdin, de acuerdo con la definición de _iob, la función intentará escribir en la dirección 0 porque este es el valor que _iob [0] .ptr y _iob [0] .base eran asignado Es esto legal?¿La implementación de getc y putc de K & R es correcta?
Código: http://ideone.com/AIkCA
Definición de _iob:
FILE _iob[20] = {
{0, (char *) 0, (char *) 0, _READ, 0},
{0, (char *) 0, (char *) 0, _WRITE, 0},
{0, (char *) 0, (char *) 0, _WRITE, 0}
};
¿Por qué no publica el código en su pregunta y dinos qué edición del libro estás usando? Supongo que no todos aquí tienen una copia del libro a mano para entender de qué estás hablando. – hugomg
Caso de cualquier pregunta futura de este tipo, hay una página de erratas para K & R2 en - al menos, sí. Parece que está caído ahora. Sin embargo, el caché de Google lo tiene. URL omitida *) Si encuentra algún error aún no descubierto, el mundo de la programación de C se sorprenderá. Se llama nuestra Biblia después de todo. Lo hemos estudiado * duro *. –
El sitio cm.bell-labs.com ha vuelto ahora y el enlace todavía no funciona. Aquí está de nuevo: http://cm.bell-labs.com/cm/cs/cbook/2edi ffs.html –