gpt4 book ai didi

c++ - 将第一个值插入链表时尝试访问头部时出现段错误

转载 作者:行者123 更新时间:2023-11-27 23:46:45 25 4
gpt4 key购买 nike

我整天都在做这件事,还有 3 个其他作业(针对同一类(class)),这是我自己无法解决的最后一个问题,我是模板的新手,所以不太确定它们是如何工作的100% 工作。

没有模板,这段代码运行完美,但是有了模板,我在 if(head == NULL)prioqueueUNS 文件中收到一个段错误,我无法确定为什么会发生这种情况,因为我在构造函数中将 head 默认为 NULL,因此我们将不胜感激

主要内容

#include "node.h" 
#include "prioqueueUNS.cpp"
int main() {
PrioQueueUNS<int> list;
list.insertItem(1);
}

节点.h

#ifndef node_h
#define node_h
using namespace std;
template<class Type>
struct node {
Type data;
node<Type> *next;
};
#endif

prioqueueUNS.cpp

#ifndef prioqueueUNS_cpp
#define prioqueueUNS_cpp
#include "node.h
using namespace std;

template<class Type>
class PrioQueueUNS {
private:
node<Type> *head;
node<type> *tail;
int sizee;
int size;
int min;

public:
PrioQueueUNS() {
head = NULL;
tail = NULL;
}

PrioQueueUNS(Type *dataArray, int n) {
head = NULL;
tail = NULL;
}

void insertItem(Type n) {
node<Type> *temp;
temp->data = n;
temp->next = NULL;

if (head == NULL) { //<-- segment faulting when trying to access head
head = temp;
tail = temp;
min = n;
}
}
};

最佳答案

node<Type> *temp;
temp->data = n;

您创建了一个指针 (temp),但它不指向任何内容,因此 temp->data 尝试访问某物的 data 字段那不存在。

您可以使用 new 来解决这个问题,但这需要您事后销毁该对象。

关于c++ - 将第一个值插入链表时尝试访问头部时出现段错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49935355/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com