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. c,查找指針數組的長度
- 2. 函數指針數組指針用作函數的返回值
- 3. Malloc函數指針數組
- 4. 數組指針函數
- 5. 函數指針數組
- 6. 指針函數與數組
- 7. 如何初始化指向不同長度的char數組的指針數組?
- 8. 瞭解指針數組的指針作爲函數的參數
- 9. C - 指向返回字符串函數的指針函數的指針數組
- 10. 指向函數指針數組的指針
- 11. 指向函數指針數組的指針
- 12. 函數指針指向一個函數指針的函數
- 13. c函數指針反函數指針
- 14. 如何知道指針數組中指針的長度是多少?
- 15. void *的函數指針數組轉換
- 16. 函數指針的const數組befuddles
- 17. 數組或指針的Pereferring函數?
- 18. C中的函數指針數組
- 19. 使用指針數組的函數
- 20. 函數指針的數組C++
- 21. 指針數組作爲函數參數
- 22. 將指針長度加長
- 23. Can Go函數可以指定特定的數組長度嗎?
- 24. 使用指針獲取數組的長度
- 25. C++如何獲取指針數組的長度?
- 26. 如何迭代使用指針和長度未知的數組?
- 27. c lang - 指針不同的數組長度
- 28. 指針數組和指針的指針數組
- 29. 指針?指針函數?
- 30. 數組指針的數組?
你爲什麼投? – cnicutar 2013-03-13 19:11:00
至少它不會像你打算的那樣工作。密切關注你的括號。並請顯示'fp'的聲明。 – moooeeeep 2013-03-13 19:35:39