4

char 配列のサイズを宣言しようとしていますが、size_t として宣言されている変数の値を使用してそのサイズを宣言する必要があります。とにかく、 size_t 変数を int にキャストして、それを行うことができますか?

4

2 に答える 2

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してメモリを管理するので、メモリを明示的に削除することを覚えておく必要がなく、手動の動的割り当てに伴う多くの所有権の問題について心配する必要もありません):

std::size_t sz = 42;
std::vector<char> cvector(sz);
于 2010-06-14T20:54:36.717 に答える
0

size_tの背景については、Dan Saks の記事を強くお勧め します。

于 2010-06-14T21:20:53.830 に答える