如何從陣列得知陣列的大小 |
答題得分者是:richtop
|
phorn
一般會員 發表:28 回覆:60 積分:17 註冊:2004-03-03 發送簡訊給我 |
|
richtop
資深會員 發表:122 回覆:646 積分:468 註冊:2003-06-10 發送簡訊給我 |
phorn 您好: 底下方法請參考:
//--------------------------------------------------------------------------- //float Test[3][2]; // global case void __fastcall TForm1::Button1Click(TObject *Sender) { float Test[3][2]; // local case int row = sizeof(Test) / sizeof(Test[0]); int col = sizeof(Test[0]) / sizeof(Test[0][0]); AnsiString msg; msg.printf("The size of Test[%d][%d].", row, col); ShowMessage(msg); } //---------------------------------------------------------------------------RichTop 敬上 =====***** 把數學當工具,可以解決問題;將數學變能力,能夠發現並解決問題! =====##### |
phorn
一般會員 發表:28 回覆:60 積分:17 註冊:2004-03-03 發送簡訊給我 |
|
andychang1690
資深會員 發表:20 回覆:694 積分:442 註冊:2003-03-14 發送簡訊給我 |
|
richtop
資深會員 發表:122 回覆:646 積分:468 註冊:2003-06-10 發送簡訊給我 |
phorn 您好:
引言:例如: int AA[5]; int*BB=AA;理論上,AA有宣告,所以系統會註記其大小,但BB只是一個指標變數,裡面能存的是另一個int的位址,因此的確不能用以獲取陣列AA的大小:int len = sizeof(AA)/sizeof(AA[0])。 所以,要這樣用的話,必須再利用一個變數儲存原陣列AA的大小。 andychang1690 大大提出一個不錯的想法,但會有一個隱憂: 萬一陣列的值,並沒有初始化或初始化成我們要當成結束的值,也就是說,即便 int AA[5]; AA[0]=1; AA[1]=2; // 但AA[2]=?,如果是零,依照這個方法,也會造成誤判!RichTop 敬上 =====***** 把數學當工具,可以解決問題;將數學變能力,能夠發現並解決問題! =====##### 發表人 - richtop 於 2004/08/13 17:38:52 |
phorn
一般會員 發表:28 回覆:60 積分:17 註冊:2004-03-03 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |