gpt4 book ai didi

c - gdb - 检测到 SIGSEGV 但无法确定哪个函数和哪一行

转载 作者:行者123 更新时间:2023-11-30 15:52:35 24 4
gpt4 key购买 nike

http://d.pr/f/FIjf 请检查main.c。我将一个字符串指定为 char *s3 = "0,9,8,7,6,5,4,3,2,1"; 并且在运行时会有一个 SIGSEGV。当我取消注释这一行时,就没有 SIGSEGV 了。那么为什么这个字符串赋值会导致 SIGSEGV 呢?

最佳答案

很可能您正在修改字符串文字,从而导致未定义的行为(UB)

s3 指向存储在只读实现定义的内存中的字符串文字,任何修改此字符串文字的尝试都会导致未定义的行为。事实上,你很幸运你的代码崩溃了,因为 UB 不一定会强制崩溃,但它可能会给你带来奇怪的或几乎任何结果。

关于c - gdb - 检测到 SIGSEGV 但无法确定哪个函数和哪一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14294595/

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