other question我問如何編譯一個具有大量數據的向量,因爲我想要一個帶有107776條目字典的向量,而且我無法編譯它。訪問一個巨大的數組時,C++程序凍結
我解決這得益於this answer的代碼:
char const * const dict[] = {"aaron",...};
但現在的問題是,當我試圖訪問一個條目...
cout<<dict[431104]<<endl;
...程序凍結而Windows想關閉它。
爲什麼發生?我該如何解決它?
編輯:對不起,這是我的錯。正如tbroberg和Seth Carnegie在this answer中注意到的那樣,錯誤在於我認爲sizeof(dict)
是數組長度(而不是sizeof(dict)/sizeof(*dict)
)。 因此,431104遠遠超出了數組的範圍(其長度爲107776)。
你需要做的是在其他問題中的評論建議,把它放在一個文件中並解析它。你不能在堆棧上存儲那麼多東西。 – 2012-07-19 18:49:29
@up true。順便說一下,我會建議你學習如何使用調試器。這真的是有用的工具:) – Blood 2012-07-19 18:50:06
是dict []本地還是全局變量? – PiotrNycz 2012-07-19 18:54:09