gpt4 book ai didi

读内存会不会出现segmentation fault?

转载 作者:太空狗 更新时间:2023-10-29 16:12:33 31 4
gpt4 key购买 nike

我认为阅读内存应该不会引起任何问题,例如

char *d="";
char *d2="test";
memcmp(d,d2,10);

memcmp() 永远 会失败吗?

最佳答案

您的假设是不正确的,因为在未映射到进程地址空间的地址处读取内存将导致 SEGV。特别是读取地址 0(在几乎所有体系结构上)和读取内核内存空间(如果它甚至被映射),但通常读取没有物理内存映射为可读的逻辑内存。

在您的示例中,您在未分配的字节上运行 memcmp,这是未定义的行为。它可能会从堆栈或数据段中读取垃圾,但您无从知晓。例如,d 可能恰好位于堆栈的顶部,因此您可能会越过堆栈顶部进入未映射的内存(堆栈通常向下增长)。

关于读内存会不会出现segmentation fault?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22207503/

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