我有一个多维向量的声明
std::vector< vector < vector < ofxImage > > > front_objects;
然后我在创建它时将它发送给我的班级:
Catalog_object * temp = new Catalog_object(&front_objects, numTag);
然后我执行以下操作:
Catalog_object::Catalog_object(vector< vector < vector < ofxImage > > > * _front_objects, int numTag) {
front_objects=_front_objects;
if (front_objects->size()<numTag+1) {
front_objects->resize(numTag+1);
}
}
我想要做的是使用Catalog_objects中的 ofxImages 向量填充主 front_objects ,这些向量可能会共享一些ofxImages向量的向量。
问题是“有时”向量是用垃圾初始化的,当试图用
清除它时front_objects[numTag].resize(2);
程序因EXC_BAD_ACCESS
而崩溃用resize()调整大小时,不应该用空向量填充吗?
由于
马克
更新
我尝试这样做,但我得到“未初始化的参考成员'Catalog_object :: front_objects'”。
Catalog_object::Catalog_object(vector< vector < vector < ofxImage > > > & _front_objects, int numTag) { // CHANGED * FOR &
std::vector< vector < vector < ofxImage > > > & front_objects; // CHANGED * FOR &
front_objects=_front_objects;
if (front_objects.size()<numTag+1) {
front_objects.resize(numTag+1);
}
front_objects[numTag].resize(2);
}
std::vector< vector < vector < ofxImage > > > front_objects;
Catalog_object * temp = new Catalog_object(front_objects, numTag); // REMOVED &
答案 0 :(得分:2)
最有可能在
front_objects[numTag].resize(2);
numTag
包含无效索引。
没有相关代码很难说。你有效地说,每次走进厨房,你都会听到奇怪的声音。陷入两个事情之间的猫的照片使它很可能是猫,但可能是别的东西。 : - )
干杯&amp;第h。,