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

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

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

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

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

3 回答

?
慕斯王

TA貢獻1864條經(jīng)驗 獲得超2個贊

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

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

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

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.您可以通過指針傳遞兩個并從函數(shù)中返回任何內(nèi)容:

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



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

TA貢獻1809條經(jīng)驗 獲得超8個贊

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

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);

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



查看完整回答
反對 回復(fù) 2019-09-09
  • 3 回答
  • 0 關(guān)注
  • 844 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號