输入一个整数n,再使用malloc函数申请n*sizeof(struct Student)大小的内存空间,对n个struct Student类型的元素赋值,并显示。使用free函数释放该内存空间。
时间: 2024-03-24 07:41:43 浏览: 16
好的,我可以帮你解决这个问题。以下是示例代码:
```c
#include <stdio.h>
#include <stdlib.h>
struct Student {
int id;
char name[20];
};
int main() {
int n;
printf("请输入学生数量:");
scanf("%d", &n);
// 申请内存空间
struct Student* students = (struct Student*)malloc(n * sizeof(struct Student));
// 赋值
for (int i = 0; i < n; i++) {
printf("请输入第%d个学生的ID和姓名:", i + 1);
scanf("%d %s", &students[i].id, students[i].name);
}
// 显示
printf("所有学生信息如下:\n");
for (int i = 0; i < n; i++) {
printf("ID:%d,姓名:%s\n", students[i].id, students[i].name);
}
// 释放内存空间
free(students);
return 0;
}
```
在这个示例代码中,我们先输入了学生数量n,然后使用malloc函数申请了n*sizeof(struct Student)大小的内存空间,并将其强制转换成struct Student*类型。接着,使用for循环对n个struct Student类型的元素进行赋值,并使用另外一个for循环进行显示。最后,使用free函数释放该内存空间。
需要注意的是,使用malloc函数申请内存空间后,一定要使用free函数进行释放,否则会造成内存泄漏。