#include <stdio.h>
#include <stdlib.h>
struct Student
{
int chengji;
char *name;
};
int main()
{
int i;
int len = 0;
printf("请输入总人数\n");
scanf("%d",&len);
/*struct Student d1[3];
truct Student *p = d1;//此处的*表示标识符申明变量*/
struct Student* p = (struct Student*)malloc(len * sizeof(struct Student));//len表示有len个结构体
for (i=0; i < len; i++)
{
printf("请输入名字:\n");
p->name = (char*)malloc(128);
scanf("%s",(p->name));
printf("请输入分数:\n");
scanf_s("%d",&(p->chengji));
p++;//for循环里要指针++;
}
p = p -len;//此处不能用*p,*表示运算符取地址的意思.指针循环之后往回走到指针头
for (i=0; i < len; i++)
{
printf("名字:%s 成绩:%d\n",p->name, p->chengji);
p++;//此处为指针头,要++遍历
}
system("pause");
return 0;
}