看板 C_and_CPP 關於我們 聯絡資訊
我是C語言初新者,最近突然想到一個問題 希望有大大可以幫忙解惑 請問一個陣列,我們能用什麼function還是其他方式去取得他的長度嗎?(有幾格) 我感覺好像是沒有辦法 甚至我們都可以超出陣列去做存取了(可能程式會被系統中斷執行) 以及印象中,好像陣列的頭到尾,沒有任何一個地方記錄著此陣列的長度? 到了陣列結尾,也沒特別註明到結尾了 既然如此,所以沒辦法事後去取得這個陣列的長度囉? 此外我有個印象,是否這個陣列的頭有記錄著這個陣列的總記憶體長度? 如果有的話,就可以推算出這個陣列有幾格囉? 真的非常謝謝大家 -- 你是否也看見 那雨下個不停 又是否 那雨 只存在於我的世界裡 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 60.244.187.49
littleshan: #19rTrezz 04/28 23:15
gba356:sizeof() 04/28 23:15
QQ29:sizof(array)/ sizeof(array type) 04/28 23:15
meltice:曾看過template版的 http://0rz.tw/1VEVz 04/28 23:45
meltice:啊 不對 這個得到的是array的維數 04/28 23:47
meltice:應該是以下這個才對 http://0rz.tw/nGbNP 04/28 23:54
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