模板变量赋值段错误 11

Template variable assignment segment fault 11

我目前正在为学校做一个哈希 table 项目,我 运行 遇到了一个我无法解决的问题。我的教授为我们提供了 类,其中包含我们需要实现的功能,这些功能使用模板。

无论如何,在我的插入函数中,我运行遇到了一个问题,即在我用来实现散列table 的单链表结构中设置一个节点的值。

我的问题是:

void insert(U item1, U item2){  //For my project U is a string
    Node<U>* temp = headPtr;

    cout << item1 << endl; //Will print out the string no problem

    //Assignment attempt
    temp->SSN = item1; // causes a seg fault


    temp->name = item2;
    temp->next = NULL;
    if(headPtr->next == NULL){
        headPtr->next = temp;
        size++;
    }
    else{
        Node<U>* temp2 = headPtr;
        while(temp2->next != NULL){
            temp2 = temp2->next;
        }
        temp2->next = temp;
        size++;
    }
}

这很令人沮丧,因为在以前的作业中我已经能够正确使用这个插入功能,我得出的结论是它不起作用的唯一原因是我一定是遗漏了一些我忽略的模板。

还有我的 node.h 文件:

 #include <iostream>
 using  namespace  std;

 template <class T>
 struct  Node{
 T SSN;
 T name;
 Node<T>*  next;
 };

我正在尝试将字符串值分配给应该是字符串值的字符串值,并且就我的理解而言应该可以工作,但是每次我 运行 程序都会到达这一点并且只有段错误 11.

你必须更换

  Node<U>* temp = headPtr;

  Node<U>* temp = new Node<U>;