如果使用visual studio在Windows机器上运行C代码,则分段不会显示,输出也是预期的。注意:代码中有很多用于内存分配和释放的指针。指针的使用深度很高(最多3级)。 可能是什么问题呢??在gdb中调试C代码也非常困难,因为它只显示哪个函数抛出了seg错误而不是代码中的行。
您还没有真正提供足够的信息。这里的人们需要更多的信息,以便能够帮助你。如果有更多细节,我会更新答案。
这几乎是你现在可以做的。
it works on windows, but not linux
的结论吗?或者它只是一个间歇性的失败(有时随机工作/失败)。尝试在Windows和Linux上使用不同的输入(如果可能)多次运行它以确保。ulimit -c unlimited
,或将此行放在〜/ .bashrc文件中。valgrind
。使用valgrind运行程序,查看生成的报告是否显示和invalid reads
或invalid writes
。经验法则是,你不应该拥有任何这些,除非你在完成审查后绝对确定它是有原因的。大多数时候,总有一种更好的方法可以避免它。任何此类错误都会导致您遇到问题或其他未来问题。