| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1308 人关注过本帖
标题:数据结构,线性表,为什么出现核心已转储的错误。请教
只看楼主 加入收藏
卜算子
Rank: 1
等 级:新手上路
帖 子:86
专家分:8
注 册:2016-9-18
结帖率:82.35%
收藏
已结贴  问题点数:20 回复次数:3 
数据结构,线性表,为什么出现核心已转储的错误。请教

#include<stdio.h>
#include<malloc.h>
#define OK 1
#define N 10
typedef struct frist
{
    int *data;
}ST;
int Initlist(ST *L)
{
    L->data = (int *)malloc(N*sizeof(int));
    return OK;
}
void creatlist(ST *L,int a[])
{
    int i;
    for( i = 0;i < N;i++)
    {
        L->data[i] = a[i];
    };
    for(i = 0;i < N;i++)
    {
        printf("%2d",L->data[i]);
    }
}
int main(void)
{
    int i,a[N];
    ST *L;
    Initlist(L);
    printf("please input number\n");
    for(i = 0;i < N;i++)
    {
        scanf("%d",&a[i]);
    }
    creatlist(L,a);
}
搜索更多相关主题的帖子: include please number return 线性表 
2017-03-08 19:42
炎天
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:桃花岛
等 级:贵宾
威 望:29
帖 子:1218
专家分:4986
注 册:2016-9-15
收藏
得分:10 
非法访问内存,
程序代码:
void creatlist(ST *L,int a[])
{
    int i;
    for( i = 0;i < N;i++)
    {
        *(L->data+i)= a[i];
    };
    for(i = 0;i < N;i++)
    {
        printf("%2d",*(L->data+i));
    }
}

早知做人那么辛苦!  当初不应该下凡
2017-03-08 20:03
卜算子
Rank: 1
等 级:新手上路
帖 子:86
专家分:8
注 册:2016-9-18
收藏
得分:0 
回复 2楼 炎天
唔,仍然出现核心已转储的问题,我看了没有越界的情况呀,按照同学你的建议改了还是有错,写个简单的程序來检测一下自己这一段的果然还是出错了,...尴尬

岂曰无衣,与子同袍!
2017-03-08 20:25
烟雨晨曦
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:7
帖 子:150
专家分:599
注 册:2017-3-5
收藏
得分:10 
int main(void)
{
    int i,a[N];
    ST *L;
    改为ST L;
    后面调用都取地址,你没有为L分配空间,又没有初始化,当L指向不可访问内存时就会这样。
    Initlist(L);
    printf("please input number\n");
    for(i = 0;i < N;i++)
    {
        scanf("%d",&a[i]);
    }
    creatlist(L,a);
}


[此贴子已经被作者于2017-3-8 21:10编辑过]

2017-03-08 21:05
快速回复:数据结构,线性表,为什么出现核心已转储的错误。请教
数据加载中...
 
   



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

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