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

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

這么寫就會執(zhí)行不了,該怎么改?

這么寫就會執(zhí)行不了,該怎么改?

茅侃侃 2023-03-03 12:08:23
pthread_create(&ntid, NULL, thr_fn,(void *) (&value[i], &i));void *thr_fn(void *arg){string msg;ftpport ftp;int i, j;value[i].desfie = (char *) malloc ( sizeof(char) * 32);for(j = 0; j < 10; j++){sprintf(value[i].desfie, "%d.dat", j);}free(value[i].desfie);cout<< "new1 thread:" <<endl;i = *((int*)arg);ftpIOIN value = *((ftpIOIN*)arg);return((void *)0);}
查看完整描述

2 回答

?
qq_花開花謝_0

TA貢獻(xiàn)1835條經(jīng)驗 獲得超7個贊

涉及多參數(shù)傳遞給線程的,都需要使用結(jié)構(gòu)體將參數(shù)封裝后,將結(jié)構(gòu)體指針傳給線程
定義一個結(jié)構(gòu)體
struct mypara
{
var para1;//參數(shù)1
var para2;//參數(shù)2
}
將這個結(jié)構(gòu)體指針,作為void *形參的實際參數(shù)傳遞
struct mypara pstru;
pthread_create(&ntid, NULL, thr_fn,& (pstru));
函數(shù)中需要定義一個mypara類型的結(jié)構(gòu)指針來引用這個參數(shù) 
void *thr_fn(void *arg)
{
mypara *pstru;
pstru = (* struct mypara) arg;
pstru->para1;//參數(shù)1
pstru->para2;//參數(shù)2 
}


查看完整回答
反對 回復(fù) 2023-03-06
?
慕田峪4524236

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

pthread_create函數(shù)接受的參數(shù)只有一個void *型的指針,這就意味著你只能通過結(jié)構(gòu)體封裝超過一個以上的參數(shù)作為一個整體傳遞。這是pthread_create函數(shù)的接口限定的,別人已經(jīng)明確表明我只接受一個參數(shù),你硬要塞給他兩個肯定會出錯了。所以通過結(jié)構(gòu)體這種組合結(jié)構(gòu)變通一下,同樣實現(xiàn)了只通過一個參數(shù)傳遞,但通過結(jié)構(gòu)指針對結(jié)構(gòu)數(shù)據(jù)成員的引用實現(xiàn)多參數(shù)的傳遞

這種用結(jié)構(gòu)體封裝多參數(shù)的用法不僅僅用在pthread_create函數(shù)中,如果你自己設(shè)計的函數(shù)需要的參數(shù)很多〉=5個以上,都可以考慮使用結(jié)構(gòu)體封裝,這樣對外你的接口很簡潔清晰,你的函數(shù)的消費者使用起來也很方便,只需要對結(jié)構(gòu)體各個成員賦值即可,避免了參數(shù)很多時漏傳、誤傳(參數(shù)串位)的問題

結(jié)構(gòu)體內(nèi)包含結(jié)構(gòu)體完全沒有問題,很多應(yīng)用都這么使用


查看完整回答
反對 回復(fù) 2023-03-06
  • 2 回答
  • 0 關(guān)注
  • 99 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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