繁体   English   中英

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

[英]casting size_t to int to declare size of char array

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

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::vectorstd::vector为您管理内存,因此您不需要记住明确删除它,您不必担心会出现许多所有权问题手动动态分配):

std::size_t sz = 42;
std::vector<char> cvector(sz);

有关size_t的更多背景知识,我强烈推荐Dan Saks的文章: “为什么size_t很重要”“对size_t的深入了解”

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM