我想聲明一個char數組的大小,並且我需要使用聲明爲size_t的變量的值來聲明該大小。無論如何,我可以將size_t變量轉換爲int類型,以便我可以這樣做?將size_t轉換爲int來聲明char數組的大小
4
A
回答
7
size_t
是一個整型,不需要強制轉換。
在C++中,如果你想有一個動態調整陣列,您需要使用new
使用動態分配。也就是說,你不能使用:
std::size_t sz = 42;
char carray[sz];
您需要改用以下內容:
std::size_t sz = 42;
char* carray = new char[sz];
// ... and later, when you are done with the array...
delete[] carray;
,或最好,你可以使用一個std::vector
(std::vector
管理的內存給你,讓你不「T需要記住直接刪除它,你不必擔心許多附帶手動動態分配的歸屬問題):
std::size_t sz = 42;
std::vector<char> cvector(sz);
+1
小細節,但是當你使用new []時,你不應該在你的例子中使用delete []? – Jacob 2010-06-14 21:05:43
+3
@Jacob:是的,這是使用'std :: vector'的另一個很好的理由。 :-)(修正並感謝) – 2010-06-14 21:06:29
0
如需更多e背景on size_t,我強烈推薦Dan Saks的文章: "Why size_t matters"和"Further insights into size_t"
相關問題
- 1. 將char數組轉換爲int數組?
- 2. 將int **數組轉換爲不同大小/構圖的char **數組
- 3. 將char數組轉換爲單個int?
- 4. 如何將char數組轉換爲int?
- 5. 將Int轉換爲Char數組
- 6. 將int轉換爲char
- 7. 將char轉換爲int?
- 8. 將char *轉換爲int
- 9. 將short int []轉換爲char *
- 10. 將int轉換爲char
- 11. 將const char *轉換爲int
- 12. 將int轉換爲char?
- 13. F# - 將char轉換爲int
- 14. 將char *轉換爲int
- 15. Java char數組轉換爲int
- 16. 如何將char數組轉換爲int數組?
- 17. 將char數組轉換爲int數組與空間
- 18. 使用Golang將int數組轉換爲char數組?
- 19. 這會將char數組轉換爲int數組無效嗎?
- 20. 如何將2d char數組轉換爲2d int數組?
- 21. 無法將參數'int'轉換爲'char'
- 22. INT轉換爲char
- 23. 將int轉換爲不同大小的字節數組
- 24. 將python long/int轉換爲固定大小的字節數組
- 25. 將數組從unsigned char *轉換爲char *
- 26. C++:從'const char *'無效轉換爲'size_t'?
- 27. int值轉換爲char太小
- 28. 將int轉換爲char並反轉
- 29. 將TCHAR數組轉換爲char數組
- 30. 不能將'std :: string {aka std :: basic_string <char>}'轉換爲'char *'將參數'2'轉換爲'int Save(int,char *)'
'size_t' _is_是用於數組大小的類型。不僅你不需要演員,而且如果你做了演員,結果只會被隱式轉換回'size_t'。 – 2010-06-14 21:01:34