我想使用push_back
方法将空白对象追加到列表中。push_back向量C++时出现分段错误
的main.cpp
vector<FacialMemory> facial_memory;
printf("2\n");
// Add people face memories based on number of sections
for (int i = 0; i < QuadrantDict::getMaxFaceAreas(); i++)
{
printf("i %d\n", i);
FacialMemory n_fm;
facial_memory.push_back(n_fm); // NOTE: Breaks here
}
在push_back
方法调用,该程序段故障崩溃。我环顾了类似的问题,并指出了我在这里的解决方案。我也尝试将FacialMemory()
传入push_back调用,但仍然是同样的问题。
的FacialMemory类定义为这样: FacialMemory.h
class FacialMemory
{
private:
vector<FaceData> face_memory;
public:
FacialMemory();
~FacialMemory();
void pushData(FaceData face);
bool isEmpty();
vector<FaceData> getFaces();
FaceData getRecent();
};
构造和析构
FacialMemory::FacialMemory()
{
}
FacialMemory::~FacialMemory()
{
delete[] & face_memory;
}
你的FacialMemory类的构造函数是什么?而且你的代码效率低下,因为你在任何地方复制对象。考虑使用移动语义或堆分配对象。 – Dai
在发布的代码中没有致命错误,但在未发布的代码中存在大量错误空间。请[mcve]。 – user4581301
好吧,我已经为FacialMemory添加了构造函数和析构函数 – DSchana