我正在阅读Jim Trevor 等人的 Cyclone: A Safe Dialect of C。全部用于编程语言课程。作者说,如果你调用getc(null)
它可能会导致分段错误——因为 C 标准没有指定如何处理这个操作。我是 C 新手,不明白为什么会这样。getc是否可能会返回指向错误内存地址的指针(因为 的行为getc(null)
不可预测)?对我来说,这似乎不是安全风险,因为 C 会期望来自getC的字符文字(而不是指向字符的指针) 。
是否担心从 getc 返回的字符可能包含有效的指针值,然后可以将其分配给指针并用于访问不安全的内存区域?还是担心 getc 会导致分段错误(而不是调用函数)。