进入for循环时,我在C ++中有段错误。但我的意思是在进入它时。这是我正在运行的代码:
std::cout<<"forcing order"<<endl;
std::cout<<"crossoverPointNumber = "<<crossoverPointNumber<<endl;
for (long j=0; j<crossoverPointNumber; j++)
{
std::cout<<"j = "<<j<<". ";
offsprings[1][positionsInParent1[j]] = valuesInParent2[j]; // Forces the order
}//end for j
我在终端上获得的输出是:
forcing order
crossoverPointNumber = 4
Segmentation fault
任何人都可以向我解释我在这里失踪了什么?它似乎是非常基本的或非常复杂的C ++东西......
答案 0 :(得分:3)
您没有在循环中的cout流中添加 endl ,因此您发布的代码并未告诉我们您何时收到分段错误。在添加endl之前,不会刷新输出流。
我强烈怀疑你在positionInParent1或valuesInParent2数组的末尾运行。