| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 505 人关注过本帖
标题:为指针数组分配动态内存空间问题。。。
只看楼主 加入收藏
wwfdzh2012
Rank: 2
等 级:论坛游民
帖 子:88
专家分:27
注 册:2012-11-22
结帖率:94.12%
收藏
 问题点数:0 回复次数:2 
为指针数组分配动态内存空间问题。。。
想为一个链表排序,但不改变原来链表的顺序,所以想用动态分配指针数组的内存空间来实现
原理是:将链表的每个节点的首地址存入一个指针数组里面,再通过指针数组里面的节点地址所指向链表的学号通过“冒泡”法排序,只改变节点首地址在指针数组里面的顺序,然后输出指针数组的节点数据,但是我实现的时候遇到问题,编译不能通过,希望能帮一下我。
程序代码:
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<conio.h>
typedef struct Data     //将学生用户信息和成绩信息相结合,构成数据链表
{
    char num[15];     //学号
    char name[15];    //姓名
    char sex[5];
    char password[20];
    float score[8];  //依次为:C程,程序导引,语文,英语,高数,线代,思修,平均分
    struct Data *next;      //指向下一个链表的指针
}DATA;     //PS:DATA只是替代struct Data名词,并不是一个结构体,一个学生一个节点
DATA *head=NULL;
void sort_num()
{
    DATA *pt=head->next;
    int count=0,i=0;
    while(pt)
    {
        count++; //计算链表节点的个数
        pt=pt->next;
    }
    DATA *p;
        p=(DATA *)calloc(count,sizeof(DATA *));//动态分配指针数组所需的空间
    pt=head->next;
    while(pt)   //将各个节点的首地址复制给指针数组
    {
        p[i]=pt;
        pt=pt->next;
    }
    DATA *t;
    for(i=0;i<count;i++)   //通过冒泡法排序
        for(int j=i;j<count;j++)
            if(strcmp(p[i]->num,p[j]->num)>0)
            {
                t=p[i];
                p[i]=p[j];
                p[j]=t;
            }
}

搜索更多相关主题的帖子: color 动态 空间 
2013-06-20 13:55
wwfdzh2012
Rank: 2
等 级:论坛游民
帖 子:88
专家分:27
注 册:2012-11-22
收藏
得分:0 
没人吗?
2013-06-20 16:29
wwfdzh2012
Rank: 2
等 级:论坛游民
帖 子:88
专家分:27
注 册:2012-11-22
收藏
得分:0 
不会是源代码写得太。。。竟然没人回答
2013-06-20 20:34
快速回复:为指针数组分配动态内存空间问题。。。
数据加载中...
 
   



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

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