error C4700: 使用了未初始化的局部变量“p”

#include<stdio.h>#include<iostream>usingnamespacestd;#defineerror0#defineok1#defineov... #include<stdio.h>
#include<iostream>
using namespace std;
#define error 0
#define ok 1
#define overflow -1
typedef int Status;
typedef struct LNode{
int data;
struct LNode *next;
}LNode, *LinkList;
Status InitList_L(LinkList &L){
L = new LNode;
if (!L) exit(overflow);
L->next = NULL;
return ok;
}
Status charu(LinkList &L, int i){
L->data = i;
for (i = 0; i < L->data; i++){
LNode* p; //error C4700: 使用了未初始化的局部变量“p” 怎么解决 求教
cin >> p->data;
p->next = L->next;
L->next = p;

}
return ok;
}
void inverse(LinkList &L) {
// 逆置带头结点的单链表 L
LNode*p;
p = L->next; L->next = NULL;
while (p) {
LNode*q;
q = p->next; // q指向*p的后继
p->next = L->next;
L->next = p; // *p插入在头结点之后
p = q;
delete q;

}
}
void print(LinkList L){
LNode*p;
p = L->next;
while(p){
cout << p->data<<endl;
p = p->next;
}
}
int main(){
LinkList L; int i;
cout << "请输入数据" << endl;
cin >> i;
charu(L,i);
print(L);
inverse(L);
print(L);

}
展开
 我来答
happytooz
2015-06-05 · TA获得超过456个赞
知道小有建树答主
回答量:142
采纳率:0%
帮助的人:131万
展开全部
改为LNode* p=new LNode();
因为你声明指针对象的时候是不会调用构造函数的,所以需要new去显式调用
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式