2010-06-14 449 views
4

我想聲明一個char數組的大小,並且我需要使用聲明爲size_t的變量的值來聲明該大小。無論如何,我可以將size_t變量轉換爲int類型,以便我可以這樣做?將size_t轉換爲int來聲明char數組的大小

+1

'size_t' _is_是用於數組大小的類型。不僅你不需要演員,而且如果你做了演員,結果只會被隱式轉換回'size_t'。 – 2010-06-14 21:01:34

回答

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::vectorstd::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