https://stackoverflow.com/questions/12762944/segmentation-fault-11
Signal 11 (segmentation fault)表示程序访问了未分配的内存位置。这通常是代码中的错误。例如,分配一个大于可用内存的缓冲区,不检查指向缓冲区的指针是否为非 NULL,然后写入(不存在的)缓冲区。一个典型的例子是在 C 中写入/读取字符串的末尾(技术上是 array-of-char)。当然,这可能发生在任何数组类型上,但这是最常见的 ime。
我曾经不得不调试一个只是偶尔死掉的 prod prog…事实证明,一个特定的“字符串”声明只是它将接收的最长字符串的一个字符短(当终止 \0 需要一个字符槽时)。
当然,它只发生在一个传入的字符串上,所有其他字符串都更短,所以当时似乎是随机的…
https://www.linuxquestions.org/questions/linux-software-2/what-is-mean-by-program-terminated-with-signal-11-segmentation-fault-4175552076/