在 K&R 第 8 章中,它具有 putc 和 getc 函数的自定义实现。在getc的第一个定义中,如果参数是stdin,根据_iob的定义,函数会尝试写入地址0,因为这是_iob[0].ptr和_iob[0].base的值分配的。这合法吗?
代码:http: //ideone.com/AIkCA
_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}
};