structure "linking chain"在函式傳值的問題 |
尚未結案
|
JerryKuo
版主 發表:42 回覆:571 積分:322 註冊:2003-03-10 發送簡訊給我 |
請問: 現在有兩個stucture,如下 typedef struct STRUCT_1
{
struct STRUCT_1 *next;
}CHAIN; typedef struct STRUCT_2
{
CHAIN *CHAIN_1;
CHAIN *CHAIN_2;
}CHAIN_SET; void getchain_1end(CHAIN *chain)
{
while(chain->next != NULL)
chain = chain->next;
} void getchain_2end(CHAIN **chain)
{
CHAIN *pChain = (*chain);
while(pChain->next != NULL)
{
pChain = pChain->next;
}
} void main()
{
CHAIN_SET Chain_Set;
CHAIN *chain1->next=NULL,
*chain2->next=NULL;
......
Chain_Set->CHAIN_1 = chain1;
Chain_Set->CHAIN_2 = chain2;
......
getchain_1end(Chain_Set->CHAIN_1);
getchain_2end(&(Chain_Set->CHAIN_2));
} Chain_Set連結兩個chain(chain_1,chain_2)
我想分別將兩個chain丟到同一個函數裡,找出chain的最尾端做新增
我原本觀念是用getchain_1end( )方式,但執行到chain = chain->next;
就錯誤,所以我改成getchain_2end( )方式,就可以執行...
我是認為這兩個傳值的方法應該是異曲同工,怎麼會有一個可行,一個不可行
Chain_Set->CHAIN_1和&(Chain_Set->CHAIN_2)差別在哪?
|
brook
資深會員 發表:57 回覆:323 積分:371 註冊:2002-07-12 發送簡訊給我 |
CHAIN *getchain_1end(CHAIN *chain) { while(chain->next != NULL) chain = chain->next; return chain; //要把值傳回去 } void main() { CHAIN_SET Chain_Set; CHAIN *chain1 = new CHAIN; CHAIN *chain11 = new CHAIN; CHAIN *chain111 = new CHAIN; CHAIN *chain2 = new CHAIN; CHAIN *p; chain1->next=chain11; chain11->next=chain111; chain111->next=NULL; chain2->next=NULL; Chain_Set.CHAIN_1 = chain1; Chain_Set.CHAIN_2 = chain2; p = getchain_1end(Chain_Set.CHAIN_1); delete chain1; delete chain11; delete chain111; delete chain2; } |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |