荔荔大魔王 2022-04-17 21:50 采纳率: 75%
浏览 12
已结题

链表构建过程中输入数据时程序直接停止

#include <stdio.h>
#include <stdlib.h>
#define ElementType int
typedef struct LNode *List;
struct LNode{
ElementType data;
List Next;
};
void CreatEmpty(List Ptrl)
{
Ptrl=(List) malloc(sizeof(struct LNode));
Ptrl->Next=NULL;
}

void WriteNum(List Ptrl)
{
List p,s;
p=Ptrl;

int number,i;

scanf("%d",&number);

int a[number];
printf("1\n");
for(i=0;i<number;i++)
{
    scanf("%d",&a[i]);
    if(i==0)
    p->data=a[i];
    else{
        s=(List)malloc(sizeof(struct LNode));
        s->data=a[i];
        p->Next=s;
        p=s;
    }
}
p->Next=NULL;

}

List Look(List Ptrl,int i)
{
int k=1;
List p;
p=Ptrl;
while(p&&k<i)
{
p=p->Next;
k++;
}
if(p)
return p;
else
return NULL;
}
int DispList(List Ptrl,int i,ElementType x)
{
List p,s;
if(i==1)
{
s=(List) malloc(sizeof(struct LNode));
s->data=x;
s->Next=Ptrl;
}
else
{
p=Look(Ptrl,i-1);
if(p)
{
s=(List) malloc(sizeof(struct LNode));
s->Next=p->Next;
p->Next=s;
s->data=x;
return 1;
}
else
{
return 0;
}
}

}

void print(List Ptrl)
{
List p;
p=Ptrl;
while(p!=NULL)
{
printf("%d ",p->data);
p=p->Next;
}
}
int main()
{
List Aim;

CreatEmpty(Aim);

WriteNum(Aim);

int i,x;
scanf("%d",&i);
scanf("%d",&x);

if(DispList(Aim,i,x)==1)
print(Aim);
else
printf("error!");
return 0;

}
帮忙看看 WriteNum函数里输入一个数据就停止运行了,,好像是内部地址赋值除了错误,我不知道为什么

  • 写回答

0条回答 默认 最新

    报告相同问题?

    问题事件

    • 系统已结题 4月25日
    • 创建了问题 4月17日

    悬赏问题

    • ¥15 is not in the mmseg::model registry。报错,模型注册表找不到自定义模块。
    • ¥15 安装quartus II18.1时弹出此error,怎么解决?
    • ¥15 keil官网下载psn序列号在哪
    • ¥15 想用adb命令做一个通话软件,播放录音
    • ¥30 Pytorch深度学习服务器跑不通问题解决?
    • ¥15 部分客户订单定位有误的问题
    • ¥15 如何在maya程序中利用python编写领子和褶裥的模型的方法
    • ¥15 Bug traq 数据包 大概什么价
    • ¥15 在anaconda上pytorch和paddle paddle下载报错
    • ¥25 自动填写QQ腾讯文档收集表