【发布时间】:2015-12-11 13:40:56
【问题描述】:
以下在 C 中究竟做了什么(或试图做什么)?
*(int *)0='X';
会产生什么信号?会是 SIGSEGV 吗?
【问题讨论】:
-
是的,在大多数 POSIX 系统上,您将获得一个 SIGSEGV。附言-- 有什么特别的原因你不能编译它并自己测试吗?
-
要生成信号,您必须显式生成它们。未定义的行为对此并不可靠。
-
@SamVarshavchik 测试不是获得有关 C 语言规定的明确答案的合适方法。未定义的行为有允许任何事情发生的烦人习惯。
-
@chux - 我的硬件坏了 - 我设计的 :)
标签: c