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

如何從陣列得知陣列的大小

答題得分者是:richtop
phorn
一般會員


發表:28
回覆:60
積分:17
註冊:2004-03-03

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-08-13 14:21:26 IP:203.70.xxx.xxx 未訂閱
請問一下: 有辦法從一個陣列的得其大小嗎< > 例如:我有一個陣列 >< > 麻煩大大教導< >謝謝!!< >
richtop
資深會員


發表:122
回覆:646
積分:468
註冊:2003-06-10

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-08-13 15:25:01 IP:211.76.xxx.xxx 未訂閱
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

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-08-13 16:42:30 IP:211.74.xxx.xxx 未訂閱
richtop 您好: 感謝您的教導,本來想說可以了... 可是程式將加上去之後變的怪怪的< > 後來才發現它是一個陣列指標< > 例如: int AA[5]; int*BB=AA; 請問要如何從BB的知AA的大小
andychang1690
資深會員


發表:20
回覆:694
積分:442
註冊:2003-03-14

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-08-13 16:55:10 IP:61.142.xxx.xxx 未訂閱
除非你AA陣列都有值不然是無法知道了!
下例為簡單的運算!
  int i=0;
  int AA[5];
  AA[0]=1;
  AA[1]=2;
  int *BB=AA;
  while(*BB != '\0' ) {
      BB;
      i;
  }
  Label1->Caption=i; // 得到2
我也希望有人能有好方法!
Andy Chang
------
Andy Chang
richtop
資深會員


發表:122
回覆:646
積分:468
註冊:2003-06-10

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-08-13 17:35:18 IP:211.76.xxx.xxx 未訂閱
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

發送簡訊給我
#6 引用回覆 回覆 發表時間:2004-08-13 20:23:08 IP:211.74.xxx.xxx 未訂閱
謝謝兩位大大的指導 小弟了解了< > 再次感謝~~~< >
系統時間:2024-06-28 5:31:21
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!