c语言函数返回结构体数组
时间: 2023-11-11 07:00:50 浏览: 196
可以通过定义一个结构体数组并返回该数组的指针来实现函数返回结构体数组的功能。具体实现方法如下:
```c
#include <stdio.h>
#include <stdlib.h>
typedef struct {
int id;
char name[20];
} Student;
Student* getStudents() {
static Student students[3] = {
{1, "Tom"},
{2, "Jerry"},
{3, "Alice"}
};
return students;
}
int main() {
Student* students = getStudents();
for (int i = 0; i < 3; i++) {
printf("id: %d, name: %s\n", students[i].id, students[i].name);
}
return 0;
}
```
在上面的代码中,我们定义了一个名为 `Student` 的结构体,其中包含了学生的编号和姓名。在 `getStudents` 函数中,我们定义了一个静态的 `Student` 类型的数组 `students`,并将其指针作为返回值返回。在 `main` 函数中,我们通过调用 `getStudents` 函数获取了该数组的指针,并遍历输出了每个学生的编号和姓名。
需要注意的是,由于 `students` 数组是在 `getStudents` 函数内部定义的,因此它的生命周期仅限于该函数内部。为了避免在函数返回后访问已经被销毁的数组,我们需要将其定义为静态数组,这样它就可以在函数调用结束后继续存在。
阅读全文