将size_t转换为int以声明char数组的大小

Bra*_*ton 4 c++ int casting size-t

我试图声明一个char数组的大小,我需要使用声明为size_t的变量的值来声明该大小.无论如何,我可以将size_t变量强制转换为int,以便我可以这样做吗?

Jam*_*lis 7

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)

  • @Jacob:是的,这是使用`std :: vector`的另一个很好的理由.:-)(固定并谢谢) (3认同)