gpt4 book ai didi

c - sscanf 如何处理重叠指针?

转载 作者:太空宇宙 更新时间:2023-11-04 02:10:07 27 4
gpt4 key购买 nike

我有一个 c 程序的 ia32 汇编 代码,我正在尝试对其进行逆向工程。在一种方法中,它似乎有行 "sscanf(input_phrase, "%d %c %d", ebp-4, ebp-9, ebp-8);" (假定 input_phrase 是一个c 是字符串,ebp 是指针)。鉴于一个 char 是 16 位,它存储 char 的空间应该与它存储第二个 int 的空间重叠(并且通过测试我发现情况确实如此)。是否有关于此代码应如何工作或不可预测的精确定义?

最佳答案

实际问题的答案是“它没有”——我不完全确定规范是否提到它,但我 100% 确定 scanf 没有“”的概念哦,这与那个重叠,所以我会做一些不同的事情”——你只会得到未定义的行为。尝试这样的事情的结果是完全不可预测的[它很可能只会导致最后读取的内容覆盖第一次读取时重叠的内容 - 但它也可能导致崩溃或第三次世界大战爆发!]

幸运的是,显示的代码不会调用该行为,因为 C 中的 char 被定义为大小为 1,因此没有冲突。

关于c - sscanf 如何处理重叠指针?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15308427/

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