[問題] 取得陣列(ARRAY)長度的方式?

看板C_and_CPP (C/C++)作者 (如果大海能夠)時間16年前 (2009/04/28 23:10), 編輯推噓7(708)
留言15則, 7人參與, 最新討論串1/1
我是C語言初新者,最近突然想到一個問題 希望有大大可以幫忙解惑 請問一個陣列,我們能用什麼function還是其他方式去取得他的長度嗎?(有幾格) 我感覺好像是沒有辦法 甚至我們都可以超出陣列去做存取了(可能程式會被系統中斷執行) 以及印象中,好像陣列的頭到尾,沒有任何一個地方記錄著此陣列的長度? 到了陣列結尾,也沒特別註明到結尾了 既然如此,所以沒辦法事後去取得這個陣列的長度囉? 此外我有個印象,是否這個陣列的頭有記錄著這個陣列的總記憶體長度? 如果有的話,就可以推算出這個陣列有幾格囉? 真的非常謝謝大家 -- 你是否也看見 那雨下個不停 又是否 那雨 只存在於我的世界裡 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 60.244.187.49

04/28 23:15, , 1F
04/28 23:15, 1F

04/28 23:15, , 2F
sizeof()
04/28 23:15, 2F

04/28 23:15, , 3F
sizof(array)/ sizeof(array type)
04/28 23:15, 3F

04/28 23:45, , 4F
曾看過template版的 http://0rz.tw/1VEVz
04/28 23:45, 4F

04/28 23:47, , 5F
啊 不對 這個得到的是array的維數
04/28 23:47, 5F

04/28 23:54, , 6F
應該是以下這個才對 http://0rz.tw/nGbNP
04/28 23:54, 6F

04/29 02:05, , 7F
C/C++的陣列頭沒有記載那種東西 有也是別的語言
04/29 02:05, 7F

04/29 09:44, , 8F
陣列的長度你不是一開始就知道了嗎... @@
04/29 09:44, 8F

04/29 09:52, , 9F
阿我現在寫一個函數接受一個A[] 他長度多少你告訴我
04/29 09:52, 9F

04/29 11:59, , 10F
他的長度在另一個參數 int sizeOfA 啊 lol
04/29 11:59, 10F

04/29 12:22, , 11F
我想M大的意思只是想表達, 對array[]想要算長度時....
04/29 12:22, 11F

04/29 12:22, , 12F
sizeof(array)/sizeof(array[0]) 並不是萬用的方法:)
04/29 12:22, 12F

04/29 12:23, , 13F
事實上這個方法只在compile time就算得出時才有用....
04/29 12:23, 13F

04/29 12:24, , 14F
所以當像func(type array[])這種case就非得要搭配另
04/29 12:24, 14F

04/29 12:25, , 15F
一個參數當作array長度才行; 應該也比較明確/有彈性吧:)
04/29 12:25, 15F
文章代碼(AID): #19znnhNM (C_and_CPP)
文章代碼(AID): #19znnhNM (C_and_CPP)