全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1746
推到 Plurk!
推到 Facebook!

副程式矩陣傳值的問題

答題得分者是:syntax
kao90042
一般會員


發表:3
回覆:0
積分:0
註冊:2009-08-27

發送簡訊給我
#1 引用回覆 回覆 發表時間:2009-08-27 16:46:41 IP:163.13.xxx.xxx 訂閱


[code c#]
void __fastcall TForm1::Button1Click(TObject *Sender)
{
int f[1000][1000];
image_to_gray(Image1,Image1);
image_to_array(Image1, f);
for(int numy=0;numyHeight;numy )
{
AnsiString Str;
for(int numx=0;numxWidth;numx )
{
Str=Str f[numy][numx];
}
Memo1->Lines->Add(Str);

}
}
//---------------------------------------------------------------------------
void image_to_array(TImage * Image1, int f[][1000])
{
Byte *ptr;
for(int numy=0;numyHeight;numy )
{
ptr=(Byte*)Image1->Picture->Bitmap->ScanLine[numy];
for(int numx=0;numxWidth;numx )
{
f[numy][numx]=ptr[3*numx];
}

}
}

[/code]

以上是我的方程式,我想在Button1Click 發生時呼叫副程式,可是在矩陣方面我不知道如何設定

因為他出現以下的問題

[C Error] Unit1.cpp(24): E2034 Cannot convert 'int ( *)[1000]' to 'int *'
[C Error] Unit1.cpp(24): E2342 Type mismatch in parameter 'f' (wanted 'int *', got 'int ( *)[1000]')

請為大大,該怎麼更改呢?
harrypp
中階會員


發表:7
回覆:124
積分:61
註冊:2006-08-31

發送簡訊給我
#2 引用回覆 回覆 發表時間:2009-08-28 11:30:58 IP:218.210.xxx.xxx 訂閱
陣列傳遞習慣的作法是把二維包成物件傳遞過去。

另外你
image_to_array() 是如何宣告?應該要如下!
void image_to_array(TImage * , int [][1000]);

編輯記錄
harrypp 重新編輯於 2009-08-28 11:56:49, 註解 無‧
harrypp 重新編輯於 2009-08-28 11:57:15, 註解 無‧
syntax
尊榮會員


發表:26
回覆:1139
積分:1258
註冊:2002-04-23

發送簡訊給我
#3 引用回覆 回覆 發表時間:2009-11-04 09:01:35 IP:59.125.xxx.xxx 訂閱
void image_to_array(TImage * Image1, int f[][1000])

改成

void image_to_array(TImage * Image1, int *f)

然後傳 &f[0][0]

程式內可用沿用 f[x][y]

===================引 用 kao90042 文 章===================


[code c#]
void __fastcall TForm1::Button1Click(TObject *Sender)
{
int f[1000][1000];
image_to_gray(Image1,Image1);
image_to_array(Image1, f);
for(int numy=0;numy

}
}
//---------------------------------------------------------------------------
void image_to_array(TImage * Image1, int f[][1000])
{
Byte *ptr;
for(int numy=0;numy

}
}

[/code]

以上是我的方程式,我想在Button1Click 發生時呼叫副程式,可是在矩陣方面我不知道如何設定

因為他出現以下的問題

[C Error] Unit1.cpp(24): E2034 Cannot convert 'int ( *)[1000]' to 'int *'
[C Error] Unit1.cpp(24): E2342 Type mismatch in parameter 'f' (wanted 'int *', got 'int ( *)[1000]')

請為大大,該怎麼更改呢?
系統時間:2024-04-26 8:18:01
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!