calloc函数的使用
fun()函数的功能:对N名学生成绩从高到低排名找出前m名了。并将数据反正一个动态分配的连续存储区中,此存储区首地址作为函数值返回。
typedefine struct ss{
char num[10];
int s;
}STU;
STU *fun(STU a[ ],int m)
{
STU b[N],*t;
int i,j,k;
t=(STU *)calloc(m,sizeof(STU));
for(i=0;i<N;i++)
b[i]=a[i];
for(k=0;k<m;k++)
{
for(i=j=0;i<N;i++)
if(b[i].s>b[j].s)
j=i;
t[k].num=b[j].num; //答案说是t[k]=b[j]
t[k].s=b[j].s;b[j].s=0;
}
}
有两个问题,1.这个程序有错误,正如注释那里,他那部的操作我感觉不对啊,求大神解释
2.calloc() 这个函数分配的地址可以用 t[0],t[1].....t[k],这样来表示这个地址的每一块?这是怎么解释的?求大神讲解