여기는 여러 번 여기에서 논의되었으므로 해결해야 할 사소한 문제 여야합니다. 그러나, 나중에 디버깅 시간, 나는 그것을 해결하기 위해 관리하지 않았습니다. 이것은 내가 처음 접했던 C++ 할당을위한 것임을 유의하십시오. 아래의 코드와 같이 내가 tempNode 내부 WordData 객체 tempData를 저장하기 위해 노력하고있어노드 탐색은 액세스 위반을 나타냅니다. 포인터에 액세스 할 때 쓰기 오류가 발생합니다.
:
tempNode->nextNode = NULL;
이 tempNode가에서 보여주는 것입니다 :
void WordList::addNodeToEnd(WordData tempData,int currentLine, wordNode* endNode){
if (headNode == NULL) {
cout << "**Initializing WordList Nodes**" << endl;
tempNode->wordData = tempData;
tempNode->nextNode = NULL;
headNode = tempNode;
endNode = tempNode;
}
else {
endNode = new wordNode{ tempData };
endNode = NULL;
tempNode->nextNode = endNode;
//std::cout << "current end node: " << endNode->wordData.getWord() << endl;
}
}
문제는이 라인 VS :
오류 메시지 :
단어 목록 클래스 정의 : 오류로
class WordList {
private:
std::string fileName;
struct wordNode {
WordData wordData;
wordNode* nextNode = NULL;
wordNode(WordData data) {
//nextNode = node;
wordData = data;
}
wordNode(){
}
};
wordNode* headNode = NULL;
wordNode* endNode = NULL;
wordNode* tempNode = NULL;
//wordNode tempNode;
public:
// WordList public methods:
WordList(std::string);
void parseFile();
void addNodeToEnd(WordData tempWordData,int currentLine,wordNode* endNode);
bool addExistingWord(std::string word,int currentLine,wordNode* traverse);
};
먼저 눈에 난이 문제가 될 수 있다고 생각했을 것이다, 액세스 에러가 될 것으로 보인다. 그러나, 내 코드의 다른 부분에서 클래스 인스턴스화에서 선언 된 클래스 함수에서 포인터와 변수를 사용했습니다. 또한, 나는 몇 가지 유사 콘텐츠를 시도하고 나는 픽업 wordData에 tempNode를 얻을 수없는 것 같습니다.
누군가가 손에 시간을 보내고 정말로 파기를 원한다면 : https://bitbucket.org/SpaceSteak/assignment-1/src VS와 Xcode에서 컴파일됩니다.