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中編譯和運行時會出現問題。 我覺得問題在於程序沒有獲得足夠的內存空間,因此我嘗試爲矢量保留大量的內存。但是,它不起作用。 我希望有人能告訴我什麼是問題,我該如何解決這個問題。
非常感謝您
我認爲你不應該在聲明中初始化結構變量...... –
這裏沒有足夠的信息來說明,你可能會錯誤地使用其中一種類型,你可能會吹出堆棧。 http://stackoverflow.com/help/mcve – user657267
如何將一個簡短的完整示例演示崩潰? –