这是一个关于使用malloc()函数开辟动态存储单元,存放输入的3个学生信息,然后输出这3个学生信息的问题。
时间: 2024-03-01 20:52:40 浏览: 47
好的,我知道了。你可以使用以下代码实现:
```c
#include <stdio.h>
#include <stdlib.h>
struct student {
char name[20];
int age;
float score;
};
int main() {
struct student *stu;
stu = (struct student *)malloc(3 * sizeof(struct student)); // 动态申请3个结构体大小的内存空间
int i;
printf("请输入3个学生的信息(姓名 年龄 成绩):\n");
for (i = 0; i < 3; i++) {
scanf("%s %d %f", (stu+i)->name, &(stu+i)->age, &(stu+i)->score);
}
printf("输出3个学生的信息:\n");
for (i = 0; i < 3; i++) {
printf("姓名:%s,年龄:%d,成绩:%f\n", (stu+i)->name, (stu+i)->age, (stu+i)->score);
}
free(stu); // 释放动态申请的内存空间
return 0;
}
```
首先定义了一个结构体`student`,包含了每个学生的姓名、年龄和成绩。然后使用`malloc`函数动态申请了3个`student`结构体大小的内存空间,并将指向这段内存空间的指针赋值给`stu`。接着通过循环输入3个学生的信息,最后再循环输出这3个学生的信息。最后使用`free`函数释放动态申请的内存空间。
阅读全文