Invalid memory reference 各位大佬神犇帮忙看看吧
#include <iostream>
using namespace std;
const int size = 1000 + 1;
struct node{
int data;
node *next;
};
void insert(node *head, int data, int index){
node *p = head;
for(int i = 0; i < index; i ++)
p = p -> next;
node *newnode = new node();
p -> data = data;
p -> next = newnode;
}
void erase(node *head, int index){
node *p = head;
for(int i = 0; i < index - 1; i ++)
p = p -> next;
p -> next = (p -> next) -> next;
}
int getdata(node *head, int index){
node *p = head;
for(int i = 0; i < index; i ++)
p = p -> next;
return p -> data;
}
int main(){
node list;
list.next = NULL;
insert(&list, 1, 0);
int size = 1;
int q;
cin >> q;
for(int i = 0; i < q; i ++){
int op;
cin >> op;
if(op == 1){
int opna, opnb;
cin >> opna >> opnb;
int i = 0;
for(; i < size; i ++)
if(getdata(&list, i) == opna)
break;
insert(&list, opnb, i + 1);
size ++;
}
if(op == 2){
int opna;
cin >> opna;
int i = 0;
for(; i < size; i ++)
if(getdata(&list, i) == opna)
break;
i ++;
if(i >= size) cout << 0 << endl;
else cout << getdata(&list, i) << endl;
}
if(op == 3){
int opna;
cin >> opna;
int i = 0;
for(; i < size; i ++)
if(getdata(&list, i) == opna)
break;
i ++;
erase(&list, i);
}
}
return 0;
}