输入一个整数n,再使用malloc函数申请n*sizeof(struct Student)大小的内存空间,对n个struct Student类型的元素赋值,并显示。使用free函数释放该内存空间。
时间: 2024-03-25 13:37:25 浏览: 38
好的,我可以帮你解决这个问题。下面是示例代码:
```c
#include <stdio.h>
#include <stdlib.h>
struct Student {
char name[20];
int age;
float score;
};
int main() {
int n;
printf("请输入学生人数:");
scanf("%d", &n);
struct Student *students = (struct Student*)malloc(n * sizeof(struct Student));
if (students == NULL) {
printf("内存分配失败!\n");
return 1;
}
printf("请依次输入每个学生的姓名、年龄、成绩:\n");
for (int i = 0; i < n; i++) {
scanf("%s %d %f", students[i].name, &students[i].age, &students[i].score);
}
printf("输入的学生信息如下:\n");
for (int i = 0; i < n; i++) {
printf("姓名:%s,年龄:%d,成绩:%.2f\n", students[i].name, students[i].age, students[i].score);
}
free(students);
return 0;
}
```
以上代码中,我们首先使用 `malloc` 函数申请了 `n*sizeof(struct Student)` 大小的内存空间,然后通过指针 `students` 访问这块内存。接着,我们依次输入每个学生的姓名、年龄、成绩,并将这些信息保存在内存中。最后,我们遍历内存中保存的学生信息,并将其输出到屏幕上。最后,使用 `free` 函数释放了这块内存空间,以免内存泄漏。
阅读全文