C ++无法向结构中添加更多变量

时间:2014-04-16 04:41:43

标签: c++ struct

我正在使用struct时遇到问题,我定义了如下结构:

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;

上面的部分很好,问题是当我在这个结构中添加一个任何类型的变量并初始化它时,它会导致&#34;分段错误(核心转储)&#34;当我运行程序时。在Window中编译和运行时没有问题,但是当我在Linux中编译和运行时,这是一个问题。 我似乎问题是程序没有为向量获得足够的内存,所以我尝试为向量保留大量内存。但是,它不起作用。 我希望有人能告诉我这是什么问题以及如何解决这个问题。

非常感谢

1 个答案:

答案 0 :(得分:0)

你能列出哪些typedef(如果有的话)是指针吗?