一个结构的问题
一个收入学生信息再输出的程序,我想问的是把char name改为 char *name 的话那后面怎么修改法呢? 请各位大虾指教...#include<stdio.h>
struct student
{
int num;
char name;
float score_c;
float score_j;
};
struct student student1;
void a(int *n,char *d,float *e,float *f);
void ab();
void main()
{
int i=5;
for(i=0;i<5;i++)
ab();
}
void ab()
{
printf("请输入学号:");
scanf("%d",&student1.num);
fflush(stdin);
printf("\n请输入姓名:");
gets(student1.name);
fflush(stdin);
printf("\n请输入C的成绩:");
scanf("%f",&student1.score_c);
printf("\n请输入J的成绩:");
scanf("%f",&student1.score_j);
a(&student1.num,student1.name,&student1.score_c,&student1.score_j);
}
void a(int *n,char *d,float *e,float *f)
{
printf("\n该生的信息\n");
printf("\n学号:%d",*n);
printf("\n姓名:%s",d);
printf("\n成绩C:%f",*e);
printf("\n成绩J:%f",*f);
printf("\n平均成绩为:%f\n",(*e+*f)/2);
} malloc申请空间 引用第1楼Saiholmes于2007-04-09 16:24发表的:
malloc申请空间
不懂 就是说本来char 是固定申请20字节的内存
现在是char* name = malloc( bytesyouwant );
记得需要自己释放内存 free( name ) 否则内存就一直占用了,直到进程结束- - malloc和calloc之类是在stdlib.h里面定义的……
嗯……忘记释放内存而直接重新对存在目标的指针malloc/new,而导致原来指针丢失而原内存未被且无法被释放,这种问题叫做内存泄漏……是C/C++比较容易发生的错误。
页:
[1]