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 的文章: “为什么 size_t 很重要”“进一步了解 size_t”

于 2010-06-14T21:20:53.830 回答