我的程序在这里崩溃了:
void TriangleStrip::addTriangle(Triangle t){
cout << t <<endl ;
instances.push_back(t); // problem here
}
实例是:
vector<Triangle> instances;
我在这里调用 addTriangle:
TriangleStrip* s;
int c = m.getTrianglesCount();
int i;
Triangle* triangles = m.getTriangles();
for(i=0; i<c; i++){
s->addTriangle(triangles[i]);
}
cout 给我写三角形,但我不能把它放到 vector 中。
问题是什么?
最佳答案
TriangleStrip* s;
声明了一个未初始化 指针,并且取消引用它 s->addTriangle...
是非法的。
要么用 new
初始化它,要么根本不使用指针——在这种情况下你不需要指针,只需要
TriangleStrip s;
和
s.addTriangle(triangles[i]);
关于C++ vector push_back 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15342642/