我將狀態類的指針設置爲該節點的指針,但我得到訪問衝突我不知道什麼是問題?在Dijkstra's_Algorithm.exe 0x001e1078未處理的異常:0xC0000005:訪問衝突讀取位置0xbaadf00d
的例外是在這裏:iosfwd
static int __CLRCALL_OR_CDECL compare(const _Elem *_First1, const _Elem *_First2,
size_t _Count)
{ // compare [_First1, _First1 + _Count) with [_First2, ...)
return (_CSTD memcmp(_First1, _First2, _Count));
}
我的代碼 在DijkstraState.h
void setCurrent(vertex<T>* v)
{
current = v ;
}
在graph.h
private member: DijkstraState<type>* states ;`
in constructor: states = new DijkstraState<type>();
template <class type>
void graph<type>::add_vertex(vertex<type> input)
{
type vertex_data = input.get_data() ;
//check vertex does not exist
if(indexes.find(vertex_data) == indexes.end())
{
indexes[input.get_data()] = count ;
vertices[count] = input ;
states[count].setCurrent(&(vertices[count]));//////////////////////////
count ++ ;
}
}
我的水晶球告訴我你在某處取消了未初始化的指針。 – HolyBlackCat
函數結束時函數參數超出範圍。您很可能不想存儲指向它的指針。 –
如果我將&(輸入)更改爲&(頂點[count]),它會導致同樣的問題@RetiredNinja Ninja –