我正在構建一個結構,其中一個成員是一個地圖。
第一個問題是允許的嗎?編譯器沒有抱怨。使用stl map作爲struct的成員
struct A {
map<int, float> B;
}
後來我聲明瞭這樣的數據類型的數組。
A *C = (A *)INTERNAL_CALLOC(..., sizeof(A));
這裏功能INTERNAL_CALLOC
是MALLOC的功能包裝。
稍後在代碼中,當我嘗試第一次插入一個項目到數組的第一個元素的映射時,我得到了一個核心轉儲。
C[0].B[0] = 0.001;
任何想法爲什麼是這種情況?
謝謝!
代碼部分沒有出來的權利。結構A之後的行是「map B」; –
elgnoh
你不應該使用'malloc'來分配C++對象(你的結構是)。你應該使用'new'。 –