标题:大神帮忙看看,代码没问题,编译后就崩溃了
只看楼主
艾特Boss
Rank: 1
来 自:山西省
等 级:新手上路
帖 子:1
专家分:0
注 册:2016-3-20
结帖率:0
已结贴  问题点数:20 回复次数:8 
大神帮忙看看,代码没问题,编译后就崩溃了
#include<stdio.h>
#include<malloc.h>

typedef struct node{
    int data;
    struct node *next;
}lnode,*link;

void create(link *l)
{
    int i,n;
    link p,q=*l;
    (*l)=(link)malloc(sizeof(node));
    (*l)->next=NULL;
    scanf("%d",&n);
    for(i=0;i<n;i++)
    {
        p=(link)malloc(sizeof(node));
        p->next=NULL;
        q->next=p;
        q=p;
    }
}

void insert(link *l)
{
    int i,n,e;
    link p=*l,s;
    s=(link)malloc(sizeof(node));
    printf("input insert position:");
    scanf("%d",n);
    for(i=1;i<n;i++)
    p=p->next;
    printf("input insert number:");
    scanf("%d",e);
    s->data=e;
    s->next=p->next;                  //p->next指向了下一个节点,所以,s->next也就指向了下一个节点;
    p->next=s;                          
}

void delect(link *l)
{
      int i,n;
      link p=*l,s;
      printf("input delect position:");
      for(i=1;i<n;i++)
      p=p->next;
      s=p->next;
      p->next=s->next;
}

void prin(link l)
{
    int n;
    l=l->next;
    while(l)
    {
        printf("%d",&l->data);
        l=l->next;
    }
    printf("\n");
}
int main()
{
    link L;
    create(&L);
    prin(L);
    insert(&L);
    prin(L);
}

出现提示:Process exited after 24.58 seconds with return value 3221225477

[此贴子已经被作者于2016-3-20 00:50编辑过]

搜索更多相关主题的帖子: include create insert 
2016-03-20 00:42
qq1023569223
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:湖南科技大学
等 级:贵宾
威 望:26
帖 子:2753
专家分:13404
注 册:2010-12-22
得分:4 
我就想问一下,link是你的结构体名吗,不是node吗?

   唯实惟新 至诚致志
2016-03-20 12:32
luckhide
Rank: 5Rank: 5
来 自:青岛
等 级:职业侠客
帖 子:51
专家分:338
注 册:2016-3-19
得分:4 
回复 2楼 qq1023569223
就我看是,是一个指向结构体的指针别名。
楼主的问题好像是死循环造成的。
2016-03-20 12:49
qq1023569223
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:湖南科技大学
等 级:贵宾
威 望:26
帖 子:2753
专家分:13404
注 册:2010-12-22
得分:0 
回复 3楼 luckhide
那你帮我看看link *l和struct node *l是一样的吗?

   唯实惟新 至诚致志
2016-03-20 12:52
luckhide
Rank: 5Rank: 5
来 自:青岛
等 级:职业侠客
帖 子:51
专家分:338
注 册:2016-3-19
得分:0 
回复 4楼 qq1023569223
这不需要捋清的吧。
楼主定义了link为指针类型,link *l就是指针的指针了,link l才等同于node *l。
2016-03-20 13:01
jklqwe111
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:35
帖 子:335
专家分:1125
注 册:2014-4-13
得分:4 
struct node等同于lnode
node是什么?

2016-03-20 14:45
alice_usnet
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:18
帖 子:370
专家分:2020
注 册:2016-3-7
得分:4 
程序代码:
link create()
{
    int i,n;
    link l,p;
    l=(link)malloc(sizeof(struct node));
    l->next=NULL;
    scanf("%d",&n);
    for(i=0;i<n;i++)
    {
        p=(link)malloc(sizeof(node));
        p->next=l->next;
        l->next=p;
    }
  return l;
}
void insert(link l)
{
    int i,n,e;
    link p=l,s;
    s=(link)malloc(sizeof(struct node));
    printf("input insert position:");
    scanf("%d",n);
    for(i=1;i<n&&p!=NULL;i++)
      p=p->next;
    printf("input insert number:");
    scanf("%d",e);
    s->data=e;
    s->next=p->next;                  //p->next指向了下一个节点,所以,s->next也就指向了下一个节点;
    p->next=s;                        

}
oid prin(link l)
{
    int n;
    l=l->next;
    while(l)
    {
        printf("%d ",l->data);
        l=l->next;
    }
    printf("\n");
}
int main()
{
    link L=create();
    prin(L);
    insert(L);
    prin(L);
}


未佩好剑,转身便已是江湖
2016-03-20 20:54
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
得分:4 
凡是這種問題,99.%是指針造成,用屁股就能得到這個結論。

授人以渔,不授人以鱼。
2016-03-20 23:22
Alar30
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:10
帖 子:988
专家分:1627
注 册:2009-9-8
得分:4 
指针的问题。。
2016-03-21 09:41



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-462692-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.020449 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved