第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

請問如何從C中的函數返回多個值?

請問如何從C中的函數返回多個值?

C
狐的傳說 2019-09-05 10:05:51
如何從C中的函數返回多個值?如果我有一個產生結果int和結果的函數,我該string如何從函數中返回它們?據我所知,我只能返回一個東西,由函數名前面的類型決定。
查看完整描述

3 回答

?
慕斯王

TA貢獻1864條經驗 獲得超2個贊

Option 1:使用int和string聲明一個struct并返回一個struct變量。

struct foo {    
 int bar1;
 char bar2[MAX];};struct foo fun() {
 struct foo fooObj;
 ...
 return fooObj;}

Option 2:您可以通過指針傳遞兩個中的一個,并通過指針更改實際參數,并像往常一樣返回另一個:

int fun(char **param) {
 int bar;
 ...
 strcpy(*param,"....");
 return bar;}

要么

 char* fun(int *param) {
 char *str = /* malloc suitably.*/
 ...
 strcpy(str,"....");
 *param = /* some value */
 return str;}

Option 3:類似于選項2.您可以通過指針傳遞兩個并從函數中返回任何內容:

void fun(char **param1,int *param2) {
 strcpy(*param1,"....");
 *param2 = /* some calculated value */}



查看完整回答
反對 回復 2019-09-09
?
海綿寶寶撒

TA貢獻1809條經驗 獲得超8個贊

由于您的一個結果類型是一個字符串(并且您使用的是C而不是C ++),我建議將指針作為輸出參數傳遞。使用:

void foo(int *a, char *s, int size);

并稱之為:

int a;char *s = (char *)malloc(100); /* I never know how much to allocate :) */foo(&a, s, 100);

通常,更喜歡在調用函數中進行分配,而不是在函數本身內部進行分配,這樣您就可以對不同的分配策略盡可能地開放。



查看完整回答
反對 回復 2019-09-09
  • 3 回答
  • 0 關注
  • 848 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號