Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 出现分段错误的奇怪情况_Linux_Sockets_Segmentation Fault - Fatal编程技术网

Linux 出现分段错误的奇怪情况

Linux 出现分段错误的奇怪情况,linux,sockets,segmentation-fault,Linux,Sockets,Segmentation Fault,我的一个朋友给了我一个c语言的项目,让我在Linux上用Socket开发一个项目 项目已经有了可执行文件,程序运行良好 当我删除可执行文件并自己编译程序时,我没有收到任何错误,但在程序的某个特定情况下(当我向其他玩家挑战某个游戏时),我得到了一个分段错误,在这种情况下,对于原始可执行文件,我没有收到任何错误 我没有对程序做任何更改,只是删除了以前的可执行文件并自己编译了程序,我不知道为什么会发生这种情况 理论上有什么解释吗?当您使用不同版本的编译器、库、实用程序等时,这是一种常见情况。。难怪大型

我的一个朋友给了我一个c语言的项目,让我在Linux上用Socket开发一个项目 项目已经有了可执行文件,程序运行良好

当我删除可执行文件并自己编译程序时,我没有收到任何错误,但在程序的某个特定情况下(当我向其他玩家挑战某个游戏时),我得到了一个分段错误,在这种情况下,对于原始可执行文件,我没有收到任何错误

我没有对程序做任何更改,只是删除了以前的可执行文件并自己编译了程序,我不知道为什么会发生这种情况


理论上有什么解释吗?

当您使用不同版本的编译器、库、实用程序等时,这是一种常见情况。。难怪大型项目(如Linux内核)明确定义了应该使用什么版本的工具来获得预期的结果。首先,尝试使用与您朋友相同的编译器重新编译,如果没有帮助,请深入挖掘库、实用程序。

代码可能依赖于未定义的行为。您的朋友可能运气不好,发现编译器version+build命令没有显示此信息。如果您大致知道故障发生的位置,请发布相关代码,您将获得更具体的帮助。我将查找未初始化的成员…这是非常典型的UB问题,例如越界变量使用或未初始化变量-这些问题,尤其是未初始化的变量,根据编译器版本、调用的顺序函数或在此之前的函数调用中发生的情况,可能会有很大的不同。感谢您的回答。请您知道,问题出在程序使用strok的部分代码中,我猜另一个编译器忽略了这个问题,但我的编译器没有。现在我只是尝试修复这个问题。