我有一個創建地圖數組的函數:C++:地圖的參考數組
map<string, int> *pMap
以及將地圖寫入數組的函數:
int iAddMap(map<string, int> mapToAdd, map<string, int> *m, int i)
{
m = &(pMap[i]);
memcpy(m, mapToAdd, sizeof(map<string, int>));
}
以及從數組中獲取地圖的函數
map<string, int>& getMap(int i)
{
return pMap[i];
}
我可以毫無問題地將數據寫入數組,但每次調用都會導致seg錯誤:
int val;
// val defined after this
map<string, int> * pGetMap = &(getMap(val));
有關爲什麼會發生這種情況的任何建議?
爲什麼不使用地圖的載體? – 2010-04-29 12:13:53
「關於爲什麼會發生這種情況的任何建議?」是的。你迫切需要選擇一本基本的C++書籍並仔細閱讀。你的代碼沒有太大的錯誤,我不知道從哪裏開始。看到這裏:http://stackoverflow.com/questions/388242/the-definitive-c-book-guide-and-list。 – sbi 2010-04-29 12:16:40