C++ Can';t解决错误:分段故障(堆芯转储)
我试图打印出一个顶点指针向量,但我一直遇到分段错误(核心转储)错误。我尝试去引用然后打印,但我发现我去引用的是一个整数。所以现在我又回到了断层带。任何帮助都将不胜感激!谢谢 getAdjacentVertex()返回向量,getWeight()返回整数,getAdjacentVertex()还返回整数C++ Can';t解决错误:分段故障(堆芯转储),c++,pointers,C++,Pointers,我试图打印出一个顶点指针向量,但我一直遇到分段错误(核心转储)错误。我尝试去引用然后打印,但我发现我去引用的是一个整数。所以现在我又回到了断层带。任何帮助都将不胜感激!谢谢 getAdjacentVertex()返回向量,getWeight()返回整数,getAdjacentVertex()还返回整数 vector<Vertex*> vertices (numVertices + 1); for(int i=0;i<vertices.size();i++) {
vector<Vertex*> vertices (numVertices + 1);
for(int i=0;i<vertices.size();i++)
{
cout << "V" << i << ": ";
cout << endl;
for(int j=0;j<vertices[i] -> getAdjacentVertices().size();j++) ///ERROR IS HERE
{
cout << "V" << vertices[i] -> getAdjacentVertices()[j].getAdjVertex() << " " << vertices[i] -> getAdjacentVertices()[j].getWeight() << endl;
}
}
向量顶点(numVertices+1);
对于(int i=0;i当您构造顶点时,请确保将所有顶点初始化为NULL
vector<Vertex*> vertices (numVertices + 1, NULL);
你没有让向量中的指针指向任何有用的东西。不要使用原始指针。因为你自己也经历过,它们很难正确使用。以上所有的都是有效的点,但我如何解决这个错误???让向量中的指针指向有用的东西。或者不要存储指针。非常感谢,SIR
for(int i=0;i<vertices.size();i++)
{
cout << "V" << i << ": ";
cout << endl;
if ( vertices[i] != NULL )
{
for(int j=0;j<vertices[i] -> getAdjacentVertices().size();j++) ///ERROR IS HERE
{
cout << "V" << vertices[i] -> getAdjacentVertices()[j].getAdjVertex() << " " << vertices[i] -> getAdjacentVertices()[j].getWeight() << endl;
}
}
}