成功代码:
#include <iostream>
using namespace std;
const int N = 1e4 + 10;
typedef struct node
{
int data;
node* next;
}node, *nlink;
nlink num[N];
void f(int a, int b)
{
if (a == b) return;
node* n = num[a];
node* m = num[b];
while (n->next != NULL)
{
n = n->next;
}
n->next = m->next;
m->next = NULL;
}
int main()
{
int n, m;
cin >> n >> m;
for (int i = 1; i <= n; i++)
{
num[i] = (node*)malloc(sizeof(node));
node* n = (node*)malloc(sizeof(node));
n->data = i;
n->next = NULL;
num[i]->next = n;
}
while (m--)
{
int a, b;
cin >> a >> b;
f(a, b);
}
for (int i = 1; i <= n; i++)
{
node* n = (node*)malloc(sizeof(node));
n = num[i]->next;
if (n != NULL)
{
while (n != NULL)
{
cout << n->data << " ";
n = n->next;
}
cout << endl;
}
else cout << endl;
}
return 0;
}
历史出错原因:
- 空指针未初始化
显示问题:xC0000005: 写入位置 0x00000000 时发生访问冲突的解决办法
原因:num[i]未给每一位malloc分配空间