C语言数据结构链表使用了未初始化的局部变量
其他问答
1
#include<stdio.h>
#include<malloc.h>
typedef struct LNode {
int data;
struct LNode* next;
}LNode, * LinkList;
int InitList_L(LinkList& L);
void CreatList(LinkList& L, int n,LNode *p);
int main() {
LinkList L1,L2;
LNode* p1, * p2;
int i,n1,n2;
InitList_L(L1);
InitList_L(L2);
printf("L1中的数据个数\n");
scanf("%d",&n1);
CreatList(L1,n1,p1);
printf("L2中的数据个数\n");
scanf("%d", &n2);
CreatList(L2, n2, p2);
return 0;
}
//初始化
int InitList_L(LinkList& L) {
L = (LinkList)malloc(sizeof(LNode));
L->next = NULL;
return 1;
}
//头插法建立单链表
void CreatList(LinkList& L, int n,LNode *p) {
int i;
for (i = n; i > 0; --i) {
scanf("%d",&p->data);
p->next = L->next;//插入到表头
L->next = p;
}
}
-
struct ListNode{ int val; ListNode *next; ListNode(int x) : val(x), next(nullptr){ } } // 尾差法 ListNode* CreateList(int length){ if (length < 1) return nullptr; ListNode *head = new ListNode(length); ListNode *s = head; int k = 1; ListNode *r = nullptr; srand(unsigned(time(0))); while (k <= length){ r = new ListNode(rand()); s -> next = r; s = r; k++; } s -> next = nullptr; return head; }
-
22行使用了p1,26行使用了p2,p1和p2在14行声明后没有赋值。 第14行修改为:
LNode* p1 = 0, *p2 = 0;
发表回复