在结构体数组中在添一个元素的函数
时间: 2024-02-15 18:06:06 浏览: 23
在结构体数组中添加一个元素的函数通常被称为push函数,它可以将一个新元素添加到结构体数组的末尾。以下是一个C语言实现的push函数示例:
```c
#include <stdio.h>
#include <stdlib.h>
typedef struct {
int id;
char name[20];
} Student;
void push(Student **arr, int *size, Student newStudent) {
(*size)++;
*arr = (Student*)realloc(*arr, (*size) * sizeof(Student));
(*arr)[*size-1] = newStudent;
}
int main() {
Student *students = NULL;
int size = 0;
Student s1 = { 1, "Tom" };
Student s2 = { 2, "Jerry" };
push(&students, &size, s1);
push(&students, &size, s2);
for (int i = 0; i < size; i++) {
printf("Student %d: %s\n", students[i].id, students[i].name);
}
free(students);
return 0;
}
```
这个示例中,我们定义了一个结构体Student,包含学生的id和name。我们使用push函数将两个新的学生添加到了一个空的结构体数组中。在push函数中,我们首先将数组的大小加1,然后重新分配内存以容纳新的结构体。最后,我们将新的结构体添加到数组的末尾。请注意,我们将数组的指针和大小的指针作为参数传递给push函数,以便可以在函数内部修改它们的值。在主函数中,我们遍历结构体数组并打印每个学生的信息。最后,我们释放了结构体数组的内存以避免内存泄漏。