求助,为什么我在VS调试到析构函数的时候到p=p->next突然触发断点,停止了,一直找不出问题
眺望QAQ 2020-09-11 11:32:28
#include<iostream>
using namespace std;
struct LinkList {
int data;
LinkList* next;
};
class LinkListClass {
LinkList* head;
public:
LinkListClass();
~LinkListClass();
void CreateList(int d);
friend int count(LinkListClass a, LinkListClass b);
};
LinkListClass::LinkListClass() {
head = new LinkList();
head->next = NULL;
}
LinkListClass::~LinkListClass() {
LinkList *pre, *p;
pre = head;
p = pre->next;
while (p) {
delete pre;
pre = p;
p = p->next;
}
delete pre;
}
void LinkListClass::CreateList(int d) {
LinkList* s;
int i,n;
cin >> n;
head->next = NULL;
while (d>0) {
int a;
a = n % 10;
s = new LinkList();
s->data = a;
s->next = head->next;
head->next = s;
n = n / 10;
d--;
}
}
int count(LinkListClass a, LinkListClass b) {
LinkList* s, * r;
int num=0;
s = a.head->next;
r = b.head->next;
while (s != NULL && r != NULL) {
if (s->data == r->data) {
num++;
}
s = s->next;
r = r->next;
}
return num;
}
int main() {
int n;
cin >> n;
for (int i = 0; i < n; i++)
{
LinkListClass a, b;
int c,d;
cin >> d;
a.CreateList(d);
b.CreateList(d);
c = count(a, b);
cout << c<<endl;
}
return 0;
}