我一直在寻找,找不到像这样的东西。现在,我不会让你看到我的整个节目。这是非常漫长的。但是,这里是您的基本概述:C++中的神秘分割错误?
int main()
{
int i=0;
int h=5;
cout << "h(IS) = " << h << endl;
cout << "testing comment.";
while(i < 10)
{
cout << "I'm in the loop!";
i++;
}
return 0;
}
看起来不错,对不对?好的,这是问题所在。我运行它,并且出现分段错误。最奇怪的部分是我得到它的地方。该测试评论甚至不打印。哦,如果我在循环之前注释掉所有的行,我仍然会得到这个错误。
所以,这里是我的输出,让你明白:
h(IS) = 5
Segmentation fault
我完全,彻底,困惑。在我的程序中,h调用一个函数 - 但是注释掉打印h和函数调用的行都没有效果,事实上,它所做的只是在打印h行过去的行上出现了分段错误。
什么是造成这种故障?我可以做什么来测试它来自哪里?
保持你的答案简单的请,我只是一个初学者相比,这里大多数人:)
注:我可应要求提供我完整的代码,但它是600线长。
编辑:我已经贴在这里真正的代码:http://pastebin.com/FGNbQ2Ka
原谅怪异的评论所有的地方 - 和阵列。这是一个学校任务,我们必须使用它们,而不是指针。我们的目标是打印解决方案到15-Puzzle。现在是凌晨1点,所以我不打算在整个事情中解决我恼火的评论。
我最近感到恼火,因为我认为这是在那里的东西,所以第一次印刷整个评论出来......但没有......它不是。我仍然有错。只是没有打印。
对于那些有兴趣,我的输入信息是0 6 2 4 1 10 3 7 5 9 14 8 13 15 11 12
谢谢这么多,每个人是帮助! :)
嗯,它适用于我。没有问题不在您发布的代码中。 (如果你的代码太长,可能会在pasteit或其他东西上发布,并提供一个链接 – phoeagon 2013-02-23 08:50:52
注意:因为你没有使用endl/flush刷新,你可能根本没有看到输出 – Aleph 2013-02-23 08:51:05
在调试器中运行你的程序,它会停止在发生分段错误的地方,然后它将允许你检查函数调用堆栈,看看你是如何在那里结束的,然后让你走上调用堆栈,这样你就可以看到你的代码,然后你可以检查变量看看有什么可能导致它 – 2013-02-23 08:51:50