K&R の第 8 章では、putc および getc 関数のカスタム実装があります。getc の最初の定義で、パラメーターが stdin の場合、_iob の定義に従って、関数はアドレス 0 に書き込もうとします。これは、_iob[0].ptr と _iob[0].base があった値だからです。割り当てられます。これは合法ですか?
_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}
};