字符串中是否允许使用最大字符数?如果是这样,字符数限制是多少?
答案 0 :(得分:6)
对于std::string str
,您可以获得str.max_size()
的最大尺寸。
要获取当前分配的尺寸,请使用str.capacity()
。
答案 1 :(得分:3)
我们在说“C string”还是std::string
...前者完全取决于缓冲区的大小。后者应仅受可用内存量的限制。
答案 2 :(得分:1)
我的理解是,C风格字符串中的最大字符数是size_t
类型的容量。 size_t
由标准定义,以便能够处理给定平台上的最大大小。可能存在较少的约束,例如可用于存储文本的存储器(作为只读或可写)。
就std::string
(C ++字符串)而言,限制由std::string::size_type
类型可容纳的最大值指定。这在平台和翻译中有所不同。同样,这个数量可能会被平台存储字符串的能力降低。
一些新手已经能够声明10 MB字符串来处理文件。
答案 3 :(得分:-2)
假设你在谈论一个字符数组(而不是std :: string之类的东西),那么我认为限制是32768,具体取决于编译器。
<强>更新强>
正如我所说,这个限制只适用于在堆栈上声明一个数组,如下所示:
char str[32768];
在堆上声明数组时,此限制不适用:
char *str = new char[32769];