作者liwmewmew (如果大海能夠)
看板C_and_CPP
標題[問題] 取得陣列(ARRAY)長度的方式?
時間Tue Apr 28 23:10:32 2009
我是C語言初新者,最近突然想到一個問題
希望有大大可以幫忙解惑
請問一個陣列,我們能用什麼function還是其他方式去取得他的長度嗎?(有幾格)
我感覺好像是沒有辦法
甚至我們都可以超出陣列去做存取了(可能程式會被系統中斷執行)
以及印象中,好像陣列的頭到尾,沒有任何一個地方記錄著此陣列的長度?
到了陣列結尾,也沒特別註明到結尾了
既然如此,所以沒辦法事後去取得這個陣列的長度囉?
此外我有個印象,是否這個陣列的頭有記錄著這個陣列的總記憶體長度?
如果有的話,就可以推算出這個陣列有幾格囉?
真的非常謝謝大家
--
你是否也看見 那雨下個不停
又是否
那雨 只存在於我的世界裡
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 60.244.187.49
推 gba356:sizeof() 04/28 23:15
推 QQ29:sizof(array)/ sizeof(array type) 04/28 23:15
→ meltice:啊 不對 這個得到的是array的維數 04/28 23:47
→ MOONRAKER:C/C++的陣列頭沒有記載那種東西 有也是別的語言 04/29 02:05
推 Ebergies:陣列的長度你不是一開始就知道了嗎... @@ 04/29 09:44
→ MOONRAKER:阿我現在寫一個函數接受一個A[] 他長度多少你告訴我 04/29 09:52
推 Ebergies:他的長度在另一個參數 int sizeOfA 啊 lol 04/29 11:59
推 VictorTom:我想M大的意思只是想表達, 對array[]想要算長度時.... 04/29 12:22
→ VictorTom:sizeof(array)/sizeof(array[0]) 並不是萬用的方法:) 04/29 12:22
→ VictorTom:事實上這個方法只在compile time就算得出時才有用.... 04/29 12:23
→ VictorTom:所以當像func(type array[])這種case就非得要搭配另 04/29 12:24
→ VictorTom:一個參數當作array長度才行; 應該也比較明確/有彈性吧:) 04/29 12:25