C++不能向结构中添加更多变量

C++ cannot add more variable to a struct

本文关键字:变量 添加 不能 结构 C++      更新时间:2023-10-16

我目前在处理结构时遇到了一个问题,我定义了一个结构,如下所示:

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中编译和执行时会出现问题。我的问题似乎是程序没有为向量获得足够的内存,所以我试图为向量保留大量内存。然而,它不起作用。我希望有人能告诉我问题出在哪里,我该如何解决。

非常感谢

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