定义一个结构体指针函数,返回一个结构体变量的地址,通过地址输出结构体各个成员
时间: 2023-07-02 11:07:14 浏览: 87
下面是一个定义结构体指针函数的示例代码:
```c
#include <stdio.h>
#include <stdlib.h>
struct Person {
char name[20];
int age;
float height;
};
struct Person* create_person(char name[], int age, float height) {
struct Person* p = malloc(sizeof(struct Person));
if (p != NULL) {
strcpy(p->name, name);
p->age = age;
p->height = height;
}
return p;
}
int main() {
struct Person* p = create_person("Tom", 25, 175.0f);
if (p != NULL) {
printf("Name: %s\n", p->name);
printf("Age: %d\n", p->age);
printf("Height: %.1f\n", p->height);
free(p);
}
return 0;
}
```
在上面的示例代码中,我们定义了一个名为 `Person` 的结构体,包含了名字、年龄和身高三个成员变量。然后我们定义了一个返回值为 `Person*` 类型的函数 `create_person`,该函数接收三个参数,用于创建一个新的 `Person` 结构体并返回其地址。在 `main` 函数中,我们调用了 `create_person` 函数创建了一个新的 `Person` 结构体,并通过地址访问了该结构体的各个成员变量。最后,我们在程序结束前释放了该结构体所占用的内存空间。
阅读全文