使用堆内存,然后传递一个指向这个结构体的指针就可以了,
网站建设哪家好,找创新互联!专注于网页设计、网站建设、微信开发、微信平台小程序开发、集团企业网站建设等服务项目。为回馈新老客户创新互联还提供了宝山免费建站欢迎大家使用!
或者直接向子函数传递结构体变量.
比如:
#include stdio.h
#include malloc.h
typedef struct STRC_def{
int i;
int j;
}STRC;
int Func1(STRC * pSTRC);
int Func2(STRC aSTRC);
int main()
{
STRC * a =(STRC *)malloc(sizeof(STRC));//使用堆内存
STRC b;//使用栈内存
a-i=0;//初始化
a-j=0;
b.i=0;
b.j=0;
Func1(a);//传递指针
Func2(b);//传递变量
printf("a: %d %d\nb: %d %d\n",a-i,a-j,b.i,b.j);//结果应该是 a: 1 2 \n b: 0 0
//因为传递指针使用的是同一个存储位置,而传递变量使用的是内容复制的存储位置
return 0;
}
int Func1(STRC * pSTRC)
{
pSTRC-i=1;
pSTRC-j=2;
return 0;
}
int Func2(STRC aSTRC)
{
aSTRC.i=3;
aSTRC.j=4;
return 0;
}
在另外一个函数里面使用的源代码如下:
#include"stdio.h"
#include "conio.h" //-------添加这个头文件,因为getch()函数来自它,否则编译会有警告
struct student /*定义结构体*/
{
void main()
{
void data_in(struct student putin[]);
void data_out(struct student *p);
void data_pout(struct student *s1);
data_in(pers); /*调用指针输入函数*/
data_out(sp); /*调用指针输出函数*/
data_pout(sp); /*调用函数名输出函数*/
getch();
}
扩展资料
1、函数是C语言的基本组成元素,当我们调用一个函数时,需要明确函数名和实参列表。实参列表中的参数可以是常量、变量、表达式或者空,并且各参数之间要使用英文逗号分隔开来。
2、在C语言中,函数的定义是独立的,一个函数不能定义在另一个函数内部。但在调用函数时,可以在一个函数中调用另一个函数,这就是函数的嵌套调用。接下来我们通过一个案例来演示函数的嵌套调用。
这是文件包含的问题,你把find函数也放到main.c文件里,就可以了,否则find函数不认识你定义的结构体