如何將const char *路徑傳遞給fts_open?我想通過一個filePath。如何將const char *指針傳遞給fts_open()
回答
我假設您想知道如何將此單一路徑傳遞給參數fts_open
的argv
(類型char const **
)。該參數如此描述:
的argv
是字符指針命名一個或多個路徑組成文件層次結構的一個NULL終止的陣列。
因此,您需要創建一個長度爲2的數組,其元素類型爲char*
。把你的路徑放在第一個元素中,並在第二個元素中放置NULL。就像這樣:
char const *argv[] = { path, NULL };
您現在可以通過argv
到fts_open
。
不過,fts_open只需要'char * const *'而不是'const char * const *': -/ – 2012-03-28 20:55:20
您可以將非const指針傳遞給接受const指針的函數。在const正確性中,函數簽名告訴你函數不會修改參數指向的數據。在這種情況下,'fts_open'不會修改'argv'的內容,或者它的元素指向的值。 – tomlogic 2012-03-28 21:00:50
但我原來的版本有點sl。。我已經添加了適當的'const'限定符。也就是說,我懷疑'const'的存在使得Helium3更難理解雙重間接。爲了便於說明,有時一次只關注一個問題可能會更好。 – 2012-03-28 21:02:11
fts_open()
的第一個參數是「一個由NULL結尾的字符指針數組,指定構成文件層次結構的一個或多個路徑。」
所以,你可以通過這樣的:
char *pathlist[2];
pathlist[0] = filePath;
pathlist[1] = NULL;
fts_open(pathlist, ...);
- 1. 將const char **傳遞給函數 - 如何構建char **?
- 2. 如何將指針傳遞給字符串數組(char * p [])?
- 3. 如何將指針傳遞給函數?
- 4. 如何將指針和指針傳遞給函數?
- 5. 如何將指針指針數組傳遞給函數?
- 6. 如何將字符串的向量傳遞給foo(char const * const * const)?
- 7. 將指針傳遞給指針
- 8. 將指針傳遞給glGenBuffers
- 9. 將值傳遞給指針
- 10. 將const傳遞給接受const指針的函數不是const正確的?
- 11. 如何將char *從char **傳遞到const char *
- 12. 將const指針的容器傳遞給參數
- 13. c語法將常量指針的const指針傳遞給常量數據
- 14. const char指針修改
- 15. C++ const char *指針賦值
- 16. 與指針爲const char []
- 17. 將指針值傳遞給文件c
- 18. 將char數組的指針傳遞給函數
- 19. ANSI C - 將函數中的數據傳遞給CHAR指針
- 20. 將FILE指針傳遞給函數
- 21. 如何在參數non-const中傳遞const指針
- 22. 如何將const char * const轉換爲const char *
- 23. 將指針數組傳遞給python類
- 24. C抱怨通過char **值傳遞給char const * const * const函數,但C++不會
- 25. 語義衝突傳遞指針爲const指針字節數組
- 26. 將參數傳遞給函數指針
- 27. 如何將const void *傳遞給node.js?
- 28. 傳遞給函數頭的指針
- 29. 將指針傳遞給結構?
- 30. 將指針傳遞給成員函數
我覺得這線程都有一個很好的例子作爲公認的答案http://stackoverflow.com/questions/983376/recursive-folder-scanning-in -c – Mikhail 2012-03-28 20:48:54