这是一些有经验的C用户的任务。极难找到的错误。分割错误 - C语言
所以我花了很长时间试图检测这个在我的代码中的错误。我在第158行获取了一个分段错误,fgets()函数。我不知道它是什么。我跑了valgrind,我似乎无法理解它说什么。
这是一个棘手的错误。如果你对C语言有经验,如果你能帮我找出问题所在,我将不胜感激。
我已经链接下面的pastebin.com中的代码。该代码编译,因为它是:
下面是这个程序运行沿一个文本文件:
只需复制并粘贴所有到一个txt文件并运行那个可执行文件。
该程序适用于电子邮件数量有限的小文件,但对于包含数百万封电子邮件的非常长的文件,我会在该行发现段错误。
如果你运行valgrind a.out它会给你关于seg故障的信息。
感谢您的帮助。
'“%49 [^ @] @%49s - >%49 [^ @] @%49s”'这到底是什么? – Havenard
为什么所有尺寸都设置为“MAX_LEN + 1”?你为什么不把MAX_LEN放大1,所以你可以在每个地方使用MAX_LEN? – Barmar
@Havenard - 大声笑,这是我的scanf转换说明符。49是为了确保字符串的最大长度不超过50个字符,并且有4个字符串变量正在尝试读取。格式是这样的:[email protected] - > [email protected] – user2817240