| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 752 人关注过本帖
标题:c语言线性链表引发的数据思考。。。结构体malloc。求解
取消只看楼主 加入收藏
关鱼
Rank: 1
等 级:新手上路
帖 子:23
专家分:9
注 册:2011-9-13
结帖率:66.67%
收藏
已结贴  问题点数:20 回复次数:2 
c语言线性链表引发的数据思考。。。结构体malloc。求解
/*很简单的两个数组合并,把a,b长度标出来,长度和作为c的长度,再输入a,b内容到c,算法 */
#define MAXSIZE 1024
typedef int DATATYP;

#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>

typedef struct
{
    DATATYP data[MAXSIZE];
        int last;
}     list, *seqlist ;
            
seqlist Initlist()
{
        //建立线性表函数,以-1结尾
        seqlist a;
        int     count=0;
        int     tempnum;

        //创建数组,以-1结束
        printf("Please Type in scores ended with -1:\n");
         a=(seqlist) malloc (sizeof(seqlist));
        scanf("%d",&tempnum);

        while ( tempnum != -1)
            {
                a->data[count]=tempnum;
                count++;
                //统计数组内数字个数
                scanf("%d",&tempnum);
            }
        a->last=count;
        return a;
}
void main()
{
    DATATYP i,k;
    seqlist a, b, comb;
    DATATYP toget;

    a=Initlist();
    b=Initlist();                          //创建数组a,数组b

    toget=a->last+b->last;                  //toget为a的长度和b的长度和,作为数组comb的长度
    comb=(seqlist)malloc(sizeof(seqlist));//这里必须开辟空间吗?
    comb->last=toget;
   
    /*先将a传给comb,再将b传给comb*/
    for(i=0;i<a->last;i++)
        comb->data[i]=a->data[i];
    for(k=0;i<toget;k++,i++)
        comb->data[i]=b->data[k];
    for(i=0;i<comb->last;i++)
        printf("%-4d",comb->data[i]);
    //输出数组comb
    putchar('\n');

}
//几个疑问
//使用结构体,对结构体的元素赋值先必须malloc吗
//为什么有的测试数据可以正确显示,而别的不行
//如输入1 2 3 4 7 -1    3 4 6 8 1 -1 ,运行结果为1 2 3 4 247005357 3 4 6 8 1而调试时候测试这数据没问题
//调试的时候用debug版本可行而用release版本运行结束后崩溃
搜索更多相关主题的帖子: c语言 结构体 
2011-09-18 10:48
关鱼
Rank: 1
等 级:新手上路
帖 子:23
专家分:9
注 册:2011-9-13
收藏
得分:0 
还有啊,在这怎么高亮代码啊。。
2011-09-18 10:50
关鱼
Rank: 1
等 级:新手上路
帖 子:23
专家分:9
注 册:2011-9-13
收藏
得分:0 
回复 3楼 nextleave
是啦,刚问别人咯,终于找到一个致命错误,
a=(seqlist) malloc (sizeof(seqlist)),有错
sizeof(seqlist)为4个字节,应该为sizeof(list)
seqlist只是个指针
2011-09-18 16:43
快速回复:c语言线性链表引发的数据思考。。。结构体malloc。求解
数据加载中...
 
   



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

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