C语言中如何动态分配内存用于存储学生信息?
时间: 2024-11-03 10:22:30 浏览: 16
在C语言中,可以使用`malloc()`或`calloc()`函数动态分配内存来存储学生信息。这里是一个简单的例子,假设我们只存储名字和ID:
```c
// 动态分配内存
void allocate_memory_for_students(int* num_students) {
*num_students = 10; // 初始容量设置
students = (Student*) malloc(*num_students * sizeof(Student)); // 分配内存
if (students == NULL) {
printf("内存分配失败!\n");
exit(1);
}
}
// 使用时释放内存
void deallocate_memory() {
free(students); // 当不再需要时释放内存
students = NULL;
}
// 添加学生时动态增长空间
void add_student(Student** students, char* name, int id, float grade) {
Student* new_student = realloc(*students, (*num_students + 1) * sizeof(Student));
if (new_student == NULL) {
printf("内存扩展失败!\n");
exit(1);
}
students = new_student;
students[*num_students].name = name;
students[*num_students].id = id;
students[*num_students].grade = grade;
(*num_students)++;
}
```
注意,动态内存管理时需要谨慎处理内存分配和释放,避免内存泄漏。
阅读全文