2013-10-13 32 views
0

頭文件,老師提供的,所以我懷疑這個錯誤就出在這裏,但它拋出未處理的異常未處理的異常,看起來不像什麼是我使用錯誤的

template<class ItemType> 
class Node 
    { 
private: 
    ItemType  item; 
    Node<ItemType> *next; 
public: 
    Node(); //default constructor 
    Node(const ItemType &anItem); //none default constructor #1 
    Node(const ItemType &anItem, Node<ItemType> *nextPtr); //none default constructor #2 
    void setItem(const ItemType &anItem); 
    void setNext(Node<ItemType> *nextPtr); 
    ItemType getItem() const; 
    Node<ItemType> *getNext() const; 
    }; 

    /*other functions*/ 

    template<class ItemType> 
    Node<ItemType>* Node<ItemType>::getNext() const { 
     return next; 
    } 

的功能,我得到遇到麻煩的是這個(我測試了所有可以正常工作的功能)。

bool getNextUnvisitedCity(char citeh, char &adjCity){ 
if(!(isInMap(citeh))) 
    return false; 
else { 
    for(int i=0; i<9; i++){ 
     if(flightMap[i].city_name==citeh){ 
      if(flightMap[i].adjacent_city=NULL) 
       return false; 

      Node<char>* tempPtr; 
      tempPtr=flightMap[i].adjacent_city; 

      while(tempPtr->getNext()!=NULL){ 
       if(!(isVisited(tempPtr->getItem()))){ 
        adjCity=tempPtr->getItem(); 
        return true; 
       } 
       else 
        tempPtr=tempPtr->getNext(); 
      } 

      if(flightMap[i].adjacent_city->getNext()!=NULL){ 
       if(!(isVisited(flightMap[i].adjacent_city->getItem()))) { 
        adjCity=flightMap[i].adjacent_city->getItem(); 
        return true; 
       } else 
        return false;  
} } } } } 

我得到的錯誤是 Unhandled exception at 0x00fe4a76 in Assignment 12.exe: 0xC0000005: Access violation reading location 0x00000004

與特定的錯誤是this | 0x00000000 {item=??? next=??? } | const Node<char> * const

我沒有我的測試中,因爲同樣的事情,但我沒有錯誤做任何事情!我一直在刮我的方式在互聯網上爲什麼發生這種情況的信息,但我沒有得到任何理由

+2

對於初學者來說,行'如果(flightMap [我] .adjacent_city = NULL)'可能是爲了讀取'if(flightMap [i] .adjacent_city == NULL')(注意'='改爲'==')。實際上,這很可能是直接問題的原因。 –

+0

這個問題似乎是脫離主題,因爲你沒有做任何不正確的事情。 –

+0

他說他的程序行爲不正確,所以它是關於主題的,但是,可能是問題在其他地方,而不是在發佈的代碼中。 – Dialecticus

回答

0
flightMap[i].adjacent_city=NULL 

應該

flightMap[i].adjacent_city == nullptr // use nullptr instead of NULL or 0! 
相關問題