gpt4 book ai didi

c - getc(null) 如何产生段错误?

转载 作者:行者123 更新时间:2023-11-30 15:54:20 26 4
gpt4 key购买 nike

我正在阅读 Jim Trevor 等人所著的Cyclone:C 的安全方言。一切都是为了编程语言类(class)。作者表示,如果调用 getc(null) 可能会导致段错误,因为 C 标准没有指定如何处理此操作。我是 C 新手,不明白为什么会出现这种情况。 getc 可能会返回一个指向错误内存地址的指针(因为 getc(null) 的行为是不可预测的)吗?对我来说,这似乎不存在安全风险,因为 C 会期望来自 getC 的字 rune 字(而不是指向字符的指针)。 。

是否担心从 getc 返回的字符可能包含有效的指针值,然后该值可以分配给指针并用于访问不安全的内存区域? 或者是担心getc会导致段错误(而不是调用函数)。

最佳答案

我还没有读过 GNU C 库源代码(但我读过“info getc”),但是你应该传递一个指向 getc 的指针。如果您传递的指针是空指针,getc可能会尝试像有效指针一样读取/写入它,这会生成段错误。

关于c - getc(null) 如何产生段错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13096401/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com