size_t 是整数类型,不需要强制转换.
在C++中,如果你想有一个动态调整大小数组,你需要使用动态分配使用new.也就是说,你不能使用:
std::size_t sz = 42;
char carray[sz];
Run Code Online (Sandbox Code Playgroud)
您需要使用以下代码:
std::size_t sz = 42;
char* carray = new char[sz];
// ... and later, when you are done with the array...
delete[] carray;
Run Code Online (Sandbox Code Playgroud)
或者,最好,你可以使用a std::vector(std::vector为你管理内存,所以你不需要记得明确地删除它,你不必担心手动动态分配带来的许多所有权问题):
std::size_t sz = 42;
std::vector<char> cvector(sz);
Run Code Online (Sandbox Code Playgroud)