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

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

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

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

C
慕沐林林 2019-11-23 16:15:03
如何從C中的函數(shù)返回多個(gè)值?如果我有一個(gè)產(chǎn)生結(jié)果int和結(jié)果的函數(shù),我該string如何從函數(shù)中返回它們?據(jù)我所知,我只能返回一個(gè)東西,由函數(shù)名前面的類型決定。
查看完整描述

3 回答

?
臨摹微笑

TA貢獻(xiàn)1982條經(jīng)驗(yàn) 獲得超2個(gè)贊

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

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

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

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:類似于選項(xiàng)2.您可以通過指針傳遞兩個(gè)并從函數(shù)中返回任何內(nèi)容:

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



查看完整回答
反對 回復(fù) 2019-11-24
?
RISEBY

TA貢獻(xiàn)1856條經(jīng)驗(yàn) 獲得超5個(gè)贊

由于您的一個(gè)結(jié)果類型是一個(gè)字符串(并且您使用的是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ù)中進(jìn)行分配,而不是在函數(shù)本身內(nèi)部進(jìn)行分配,這樣您就可以對不同的分配策略盡可能地開放。



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

添加回答

舉報(bào)

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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