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

以陣列的位址傳入函式

尚未結案
khaupe
一般會員


發表:28
回覆:25
積分:15
註冊:2003-06-30

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-01-11 22:19:07 IP:140.115.xxx.xxx 未訂閱
在一般變數時函式可以這樣寫: void addition(int &x , int y){x =y;} 則在程式碼中只要 addition(x , 10); 可得到新的x的值(比原來多10) 那我的問題來啦: 如果我希望x是個陣列呢(不論一或二維) 我想要的效果是傳入一個陣列到函式裡去 傳出來以後其中的某一列(或某個值)被改變了 目前我的做法是很直覺的 double **change(double **Array){ 動態產生二維陣列 outputarray; 將Array改變後; 各元素逐一存到outputarray; return outputarray; } 想請問大家如果用上面說的第一種方法能不能做到呢?
RaynorPao
版主


發表:139
回覆:3622
積分:7025
註冊:2002-08-12

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-01-12 00:38:16 IP:61.221.xxx.xxx 未訂閱
引言: 在一般變數時函式可以這樣寫: void addition(int &x , int y){x +=y;} 則在程式碼中只要 addition(x , 10); 可得到新的x的值(比原來多10) 那我的問題來啦: 如果我希望x是個陣列呢(不論一或二維) 我想要的效果是傳入一個陣列到函式裡去 傳出來以後其中的某一列(或某個值)被改變了 目前我的做法是很直覺的 double **change(double **Array){ 動態產生二維陣列 outputarray; 將Array改變後; 各元素逐一存到outputarray; return outputarray; } 想請問大家如果用上面說的第一種方法能不能做到呢?
khaupe 你好: 以二維陣列為例,請參考以下的範例程式碼 (請依照自己的需求做修改) < class="code"> void __fastcall ChangeArray(int *iArray); void __fastcall TForm1::Button5Click(TObject *Sender) { int *iArray=NULL; iArray=new int[5*5]; ChangeArray(iArray); for(int i=0; i<5; i++) { for(int j=0; j<5; j++) { Memo1->Lines->Add("iArray["+IntToStr(i)+"]["+IntToStr(j)+"]="+IntToStr(*(iArray+i*5+j))); } } delete iArray; } void __fastcall ChangeArray(int *iArray) { for(int i=0; i<5; i++) { for(int j=0; j<5; j++) { *(iArray+i*5+j)=i*5+j; } } } -- Enjoy Researching & Developing --
------
-- 若您已經得到滿意的答覆,請適時結案!! --
-- 欲知前世因,今生受者是;欲知來世果,今生做者是 --
-- 一切有為法,如夢幻泡影,如露亦如電,應作如是觀 --
系統時間:2024-05-18 14:09:40
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!