如何解决为什么在调用 if(prim == NULL) 时出现读取访问冲突
有我的算法来创建一个Polynom,使用简单的链表,但我不知道为什么,当算法进入AddElement并点击第一个if(prim == NULL),我收到此错误: 抛出异常:读取访问冲突。这是 nullptr。 我的意思是我已经做了很多这样的列表,但现在,我真的不明白为什么根本不起作用。
class ElemPolinom {
public:
int gr;
double coef;
ElemPolinom* next;
ElemPolinom() {
gr = NULL;
coef = NULL;
next = NULL;
}
};
class ListPolinom {
ElemPolinom* prim,*ultim;
public:
ListPolinom() {
prim = NULL;
ultim = NULL;
}
void AddElem(ElemPolinom* p) {
ElemPolinom* q = NULL;
if (prim == NULL) { // when the algorithm comes here,is throwing the error
prim = p;
ultim = p;
} else if (prim->gr < p->gr) {
p->next = prim;
prim = p;
} else {
q = prim;
while ((q->next != NULL) && (q->next->gr > p->gr))
q = q->next;
if (q->next == NULL) {
q->next = p;
ultim = p;
} else {
p->next = q->next;
q->next = p;
}
}
}
void Create(int n) {
ElemPolinom* p;
int gr;
double coef;
for (short unsigned int i = 1; i <= n; i++) {
printf("Gradul elementului %d: ",i); cin >> gr;
printf("Coeficientul elementului %d: ",i); cin >> coef;
p = new ElemPolinom;
p->coef = coef;
p->gr = gr;
p->next = NULL;
AddElem(p);
}
}
};
void main() {
ListPolinom* P1 = NULL;
P1->Create(4);
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。