如何將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. 如何將指針和指針傳遞給函數?
- 3. 將指針傳遞給指針
- 4. 如何將字符串的向量傳遞給foo(char const * const * const)?
- 5. 將指針傳遞給glGenBuffers
- 6. 如何將char *從char **傳遞到const char *
- 7. 將const指針的容器傳遞給參數
- 8. 與指針爲const char []
- 9. const char指針修改
- 10. ANSI C - 將函數中的數據傳遞給CHAR指針
- 11. 將char數組的指針傳遞給函數
- 12. 將參數傳遞給函數指針
- 13. 將指針傳遞給成員函數
- 14. 將指針傳遞給函數損壞指針
- 15. 如何將char * argv []傳遞給pthread_create?
- 16. 傳遞指向C++中另一個指針的'const'指針
- 17. 如何將const char連接到const char?
- 18. 如何將字符指針傳遞給函數
- 19. 如何從DLL傳遞對象指針並傳遞給DLL?
- 20. 如何將pid轉換爲C++中的const char指針?
- 21. 將NSArray指針傳遞給指定類型的指針
- 22. 將指南針點傳遞給PHP
- 23. 將全局指針傳遞給函數
- 24. 將指針傳遞給某個函數
- 25. 將指針傳遞給函數?
- 26. 將NSTextField指針傳遞給IOUSBInterfaceInterface182回調
- 27. 將對象指針傳遞給函數
- 28. 將void指針傳遞給LLVM IRBuilder CreateCall
- 29. 將C++雙指針傳遞給python
- 30. 無法將指針傳遞給函數
我覺得這線程都有一個很好的例子作爲公認的答案http://stackoverflow.com/questions/983376/recursive-folder-scanning-in -c – Mikhail 2012-03-28 20:48:54