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

二維陣列利用(call by reference)的方式?

答題得分者是:jow
jenwe
一般會員


發表:34
回覆:38
積分:24
註冊:2007-03-23

發送簡訊給我
#1 引用回覆 回覆 發表時間:2007-11-06 17:13:17 IP:140.118.xxx.xxx 訂閱
請問我在main {}裡
有兩個二維陣列 int Text_X[10][10];
以及 int Text_Y[10][10];
想要用參照(call by reference)的方式~~~叫到副程式裡~~讓兩個陣列的值隨著副程式改變~~


之前jow 大大教過 三種方式傳值~~我也都完全搞懂~但是
又遇到二維陣列~~看到書上寫可以透過動態記憶體配置方式,可是我的程式裡面矩陣大小已經確定
所以想要知道用最簡單的參照方式還傳遞我要的矩陣,不知道怎麼傳!!



jow
尊榮會員


發表:66
回覆:751
積分:1253
註冊:2002-03-13

發送簡訊給我
#2 引用回覆 回覆 發表時間:2007-11-07 01:03:54 IP:123.193.xxx.xxx 訂閱

[code cpp]
//---------------------------------------------------------------------------
#ifndef fMainH
#define fMainH
//---------------------------------------------------------------------------
#include
#include
#include
#include <Forms.hpp><br />//---------------------------------------------------------------------------
class TForm1 : public TForm
{
__published:
TButton *Button1;
TListBox *ListBox1;
TButton *Button2;
void __fastcall Button1Click(TObject *Sender);
void __fastcall Button2Click(TObject *Sender);
private:
//一維陣列----------------------------------------------
bool __fastcall SetValue(int A[], int Size);
String __fastcall ArrayToStr(int A[],int Size);
//二維陣列----------------------------------------------
bool __fastcall SetValue(int A[][10], int Size);
TStringList* __fastcall ArrayToStr(int A[][10],int Size);
public:
__fastcall TForm1(TComponent* Owner);
};
//---------------------------------------------------------------------------
extern PACKAGE TForm1 *Form1;
//---------------------------------------------------------------------------
#endif
[/code]


[code cpp]
//---------------------------------------------------------------------------
#include
#pragma hdrstop
#include "fMain.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
Randomize();
}
//---------------------------------------------------------------------------
bool __fastcall TForm1::SetValue(int A[], int Size)
{
int Len=Size/sizeof(int);
for(int i=0;i return true;
}
//---------------------------------------------------------------------------
String __fastcall TForm1::ArrayToStr(int A[], int Size)
{
int Len=Size/sizeof(int);
String S="{";
for(int i=0;i if(S[S.Length()]==',')S.SetLength(S.Length()-1);
return S ="}";
}
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
bool __fastcall TForm1::SetValue(int A[][10], int Size)
{
int Len=Size/(sizeof(int)*10);
for(int i=0;i for(int j=0;j<10;j )
A[i][j]=random(100);
return true;
}
//---------------------------------------------------------------------------
TStringList* __fastcall TForm1::ArrayToStr(int A[][10],int Size)
{
int Len=Size/(sizeof(int)*10);
TStringList *L = new TStringList();
for(int i=0;i L->Add(ArrayToStr(A[i], sizeof(A[i])));
return L;
}
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
//一維陣列
int X[10];
int Size=sizeof(X);
ListBox1->Clear();
if(SetValue(X,Size))
ListBox1->Items->Add(ArrayToStr(X,Size));
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
//二維陣列
int X[10][10];
int Size=sizeof(X);
if(SetValue(X,Size)){
TStringList *L=ArrayToStr(X,Size);
try{
ListBox1->Items->Text=L->Text;
}
__finally{
delete L;
}
}
}
//---------------------------------------------------------------------------
[/code]
jenwe
一般會員


發表:34
回覆:38
積分:24
註冊:2007-03-23

發送簡訊給我
#3 引用回覆 回覆 發表時間:2007-11-07 15:43:39 IP:140.118.xxx.xxx 訂閱
感謝JOW大~~~繼續認真學習中~~
系統時間:2017-11-24 21:05:44
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!