線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:727
推到 Plurk!
推到 Facebook!

structure "linking chain"在函式傳值的問題

尚未結案
JerryKuo
版主


發表:42
回覆:571
積分:322
註冊:2003-03-10

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-04-23 15:55:26 IP:61.220.xxx.xxx 未訂閱
請問: 現在有兩個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

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-04-24 15:37:31 IP:218.160.xxx.xxx 未訂閱
 
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;
}
系統時間:2024-05-05 20:53:43
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!