我想声明一个char数组的大小,并且我需要使用声明为size_t的变量的值来声明该大小。无论如何,我可以将size_t变量转换为int类型,以便我可以这样做?将size_t转换为int来声明char数组的大小
4
A
回答
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
管理的内存给你,让你不“T需要记住直接删除它,你不必担心许多附带手动动态分配的归属问题):
std::size_t sz = 42;
std::vector<char> cvector(sz);
+1
小细节,但是当你使用new []时,你不应该在你的例子中使用delete []? – Jacob 2010-06-14 21:05:43
+3
@Jacob:是的,这是使用'std :: vector'的另一个很好的理由。 :-)(修正并感谢) – 2010-06-14 21:06:29
0
如需更多e背景on size_t,我强烈推荐Dan Saks的文章: "Why size_t matters"和"Further insights into size_t"
相关问题
- 1. 将char数组转换为int数组?
- 2. 将int **数组转换为不同大小/构图的char **数组
- 3. 将char数组转换为单个int?
- 4. 如何将char数组转换为int?
- 5. 将Int转换为Char数组
- 6. 将int转换为char
- 7. 将char转换为int?
- 8. 将char *转换为int
- 9. 将short int []转换为char *
- 10. 将int转换为char
- 11. 将const char *转换为int
- 12. 将int转换为char?
- 13. F# - 将char转换为int
- 14. 将char *转换为int
- 15. Java char数组转换为int
- 16. 如何将char数组转换为int数组?
- 17. 将char数组转换为int数组与空间
- 18. 使用Golang将int数组转换为char数组?
- 19. 这会将char数组转换为int数组无效吗?
- 20. 如何将2d char数组转换为2d int数组?
- 21. 无法将参数'int'转换为'char'
- 22. INT转换为char
- 23. 将int转换为不同大小的字节数组
- 24. 将python long/int转换为固定大小的字节数组
- 25. 将数组从unsigned char *转换为char *
- 26. C++:从'const char *'无效转换为'size_t'?
- 27. int值转换为char太小
- 28. 将int转换为char并反转
- 29. 将TCHAR数组转换为char数组
- 30. 不能将'std :: string {aka std :: basic_string <char>}'转换为'char *'将参数'2'转换为'int Save(int,char *)'
'size_t' _is_是用于数组大小的类型。不仅你不需要演员,而且如果你做了演员,结果只会被隐式转换回'size_t'。 – 2010-06-14 21:01:34