2010-11-04 85 views
0

我有一個多維向量矢量與大小初始化,無法清除

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); 
    } 
} 

我想要做的就是填充主front_object s與矢量ofxImages from Catalog_objects,它可能共享ofxImages向量的一些載體。

的問題是,「有時」向量進行初始化垃圾,並試圖用EXC_BAD_ACCESS

當與調整大小調整其大小()與

front_objects[numTag].resize(2); 

以清除它程序崩潰的情況下,不應該它充滿了空載體?

感謝

馬克

UPDATE

我試圖做這樣的,但我得到 「未初始化引用成員 '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

切評論:這是真的時的typedef將是一個很好的事情一個典型的例子! – 2010-11-04 12:11:56

+0

我是C++新手,我會檢查typedefs – Marc 2010-11-04 12:22:22

+0

我剛學會如何使用typedefs。非常容易和有用! http://www.functionx.com/cpp/keywords/typedef.htm – Marc 2010-11-08 09:38:37

回答

2

最有可能在

front_objects[numTag].resize(2); 

numTag持失效指數。

沒有相關的代碼很難說。實際上你說的是,每當你走進你的廚房時,你都會聽到奇怪的聲音。卡在兩個人之間的貓的圖片使得它可能是貓,但可能是其他東西。 :-)

乾杯&心連心,

+0

謝謝阿爾夫,但我已經照顧了,當我做了front_objects-> resize(numTag + 1); ,還是我錯了?我擔心我可能會弄亂指針(「指向錯誤的地方」) – Marc 2010-11-04 12:26:13

+1

@Mark:哦'****'(審查)。你的意思是調用調用是在你的構造函數中,其中'front_objects'已經被聲明爲一個指針?呃哦。如果是這樣,那麼你使用該指針作爲數組,然後這裏是如何解決的:通過引用而不是指針傳遞它。也就是說,用'&'替換你的正式參數'*',並用'.'替換' - >',然後在調用中刪除地址操作符。乾杯&hth。, – 2010-11-04 12:39:25

+0

謝謝Alf。是的,調整大小在Catalog_object構造函數內部,也許在我對代碼所做的更新中更清晰。我嘗試應用您的建議,但我收到「未初始化的引用成員」錯誤。我還不擅長指針,所以可能我現在做了一些其他的錯誤!:S 我的意圖是,所有的修改總是做到相同的front_objects – Marc 2010-11-04 13:01:17