2014-04-16 53 views
0

與結構做的時候我目前遇到了一個問題,我定義類似如下的結構:C++不能更多變量添加到一個結構

typedef struct ObjCand 
{ 
    // Initialize value for ObjCand 
    ObjCand() : inFilter(false), 
       match(false), 
       inFrs(0), 
       outFrs(0), 
       Pos(Point(0, 0)), 
       filterPos(Point(0,0)), 
       EKF(), 
       posList(POS_LIST_LENGTH), 
       direction(0.0f, 0.0f, 0.0f, 0.0f) {}; 
    bool   inFilter; 
    bool   match;   
    int    inFrs;   
    int    outFrs;   
    Point   Pos;    
    Point   filterPos; 
    ExtendedKalmanFilter EKF; 
    vector<Point> posList; 
    Vec4f   direction; 
} ObjCand; 

然後,我想利用這個結構的載體:

vector<ObjCand> objCands; 

上面部分是細的,問題是,當我在任何類型的添加一個變量這個結構和初始化它,它會導致「分段故障(核心轉儲)」時我運行該程序。在Window中編譯和運行時沒有問題,但是在Linux中編譯和運行時會出現問題。 我覺得問題在於程序沒有獲得足夠的內存空間,因此我嘗試爲矢量保留大量的內存。但是,它不起作用。 我希望有人能告訴我什麼是問題,我該如何解決這個問題。

非常感謝您

+0

我認爲你不應該在聲明中初始化結構變量...... –

+1

這裏沒有足夠的信息來說明,你可能會錯誤地使用其中一種類型,你可能會吹出堆棧。 http://stackoverflow.com/help/mcve – user657267

+6

如何將一個簡短的完整示例演示崩潰? –

回答

0

你可以列出這些類型定義(如果有的話)是指針的呢?