使用堆內存,然后傳遞一個指向這個結構體的指針就可以了,
網站建設哪家好,找創新互聯!專注于網頁設計、網站建設、微信開發、微信平臺小程序開發、集團企業網站建設等服務項目。為回饋新老客戶創新互聯還提供了寶山免費建站歡迎大家使用!
或者直接向子函數傳遞結構體變量.
比如:
#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函數不認識你定義的結構體
文章題目:c語言結構體傳給其他函數 c語言結構體傳參數
文章來源:http://m.newbst.com/article38/doipjsp.html
成都網站建設公司_創新互聯,為您提供電子商務、響應式網站、云服務器、、面包屑導航、軟件開發
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯