这已经在这里和网络的其他部分多次讨论过了,应该是一个需要解决的小问题。但是,稍后的调试时间,我还没有设法解决它。请注意,这是一个C ++赋值,我是新手。
我正在尝试将一个WordData对象tempData存储在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;
}
}
问题在于这一行:
tempNode->nextNode = NULL;
这就是tempNode在VS中显示的内容:
错误消息:
WordList类定义:
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);
};
由于错误似乎是一个访问错误,乍一看我会认为这可能是一个问题。但是,在我的代码的其他部分,我已经在类实例化中声明的类函数中使用了指针和变量。此外,我尝试了一些不同的变化,我似乎无法让tempNode获取wordData。
完整的来源,以防有人有时间在他们的手上,真的想挖掘: https://bitbucket.org/SpaceSteak/assignment-1/src 它在VS和Xcode上编译。
答案 0 :(得分:0)
好的,这很容易,将问题行改为tempNode = new wordNode {tempData};