C++ vector push_back 不工作

标签 c++ stdvector push-back

我的程序在这里崩溃了:

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/

相关文章:

C++ 从枚举值中获取位移位

c++ - UDP 发送永远不会失败

c++ - 将项目附加到 vector 会复制所有先前的项目

c++ - 两个 std::vector 的 union 读取访问冲突

c++ - 添加到std::vector时,类字段的行为异常

c++ - 引擎 Matlab 问题

c++ - 将 double* 转换为 std::vector<double> (C++)

c++ - 在 C++ 11 线程中通过引用传递;变化是本地化的

c++ - 为什么使用 'operator==' 时出现错误 no match for `std::find` ?

c++ - 当我可以在头文件中声明和定义它时,为什么要创建一个 .cpp 文件?