我正在尝试声明 char 数组的大小,我需要使用声明为 size_t 的变量的值来声明该大小。无论如何我可以将 size_t 变量转换为 int 以便我可以做到这一点?
问问题
7570 次
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 回答