如何将一个函数的局部结构体引用到另一个函数中
时间: 2024-03-23 16:41:13 浏览: 49
结构体的两种引用
要将一个函数的局部结构体引用到另一个函数中,可以采用以下两种方法:
1. 将结构体指针作为参数传递给另一个函数。在第一个函数中,可以使用malloc函数动态地为结构体分配内存,并返回指向该结构体的指针。然后将该指针作为参数传递给第二个函数,第二个函数可以使用该指针访问结构体的成员变量。
例如:
```c
#include <stdio.h>
#include <stdlib.h>
struct Person {
char name[20];
int age;
};
void func1(struct Person **p) {
*p = (struct Person *) malloc(sizeof(struct Person));
(*p)->age = 20;
}
void func2(struct Person *p) {
printf("Age: %d\n", p->age);
}
int main() {
struct Person *p;
func1(&p);
func2(p);
free(p);
return 0;
}
```
2. 将结构体定义在外部,使其成为全局结构体。在第一个函数中,可以初始化全局结构体的成员变量。在第二个函数中,可以直接访问全局结构体的成员变量。
例如:
```c
#include <stdio.h>
struct Person {
char name[20];
int age;
};
struct Person p;
void func1() {
p.age = 20;
}
void func2() {
printf("Age: %d\n", p.age);
}
int main() {
func1();
func2();
return 0;
}
```
阅读全文