下面的代碼產生了segementation錯誤,我不明白爲什麼。下面的代碼使用一個向量來存儲多個大結構,但代碼不運行並生成分段錯誤。我不明白爲什麼。我的理解是,矢量調整大小分配堆中的內存,所以這不應該是一個堆棧溢出問題。我的系統具有非常大的物理內存(256 GB),代碼以64位模式編譯,因此只分配40 MB應該不成問題。有任何想法嗎?在調整大型結構矢量的大小時出現分段錯誤
非常感謝你提前,
#include <vector>
using namespace std;
typedef struct _tmp_t {
int a_data[10*1000*1000];/* large array */
} tmp_t;
int main(void) {
vector<tmp_t> v_tmp;
v_tmp.resize(1);
return 0;
}
這就是所有的代碼? 'resize'可能需要兩倍於當前'容量'的內存,但對於這種特殊情況應該不成問題。 segfault在哪裏指向? –
在C++中,至少有15年的時間了,你不需要鍵入你的結構。 –