0
A
回答
2
,對於陣列的長度的標準成語是:
#define countof(a) (sizeof(a)/sizeof(*(a)))
如果a
是一個實際的陣列,即,聲明爲TYPE a[...]
這隻會工作。如果a
是從數組創建的指向TYPE
的指針,例如通過將數組傳遞給函數,上述宏將產生不正確的結果。
我懷疑你的代碼是這種混淆的結果。它取消fp
,這隻有在fp
是一個指向數組的指針時纔是正確的,而不是指向數組元素的指針。
1
不是動態分配的數組,也不是通過指向數組的指針(根據定義排除動態分配的數組)。
sizeof(apointer)
將返回指針的大小而不是它指向的緩衝區的大小。在C中,sizeof
沒有辦法知道指針指向一個數組或者只是一個單獨的元素(實際上是一個1的數組)。
如果你這樣做sizeof(*apointer)
它將返回單個元素(或數組中的第一個元素)的大小,因爲再次,C中沒有辦法讓sizeof知道指針指向一個數組或單個指針元件。
相關問題
- 1. 數組長度與指針
- 2. c,查找指針數組的長度
- 3. 函數指針數組指針用作函數的返回值
- 4. 數組指針函數
- 5. 函數指針數組
- 6. 瞭解指針數組的指針作爲函數的參數
- 7. C - 指向返回字符串函數的指針函數的指針數組
- 8. 指向函數指針數組的指針
- 9. 函數指針指向一個函數指針的函數
- 10. 如何知道指針數組中指針的長度是多少?
- 11. 函數指針的數組C++
- 12. 使用指針數組的函數
- 13. void *的函數指針數組轉換
- 14. 指針數組作爲函數參數
- 15. Can Go函數可以指定特定的數組長度嗎?
- 16. 如何迭代使用指針和長度未知的數組?
- 17. 指針?指針函數?
- 18. 數組指針的數組?
- 19. 數組投影爲長指針?
- 20. 函數指針
- 21. 函數指針
- 22. 函數指針
- 23. 函數指針
- 24. 函數指針
- 25. 函數指針
- 26. 指針數組指針
- 27. C指針指針數組
- 28. 通過函數數組指針循環
- 29. 定義函數內數組指針
- 30. 從函數返回數組/指針
你爲什麼投? – cnicutar 2013-03-13 19:11:00
至少它不會像你打算的那樣工作。密切關注你的括號。並請顯示'fp'的聲明。 – moooeeeep 2013-03-13 19:35:39