我需要在C++的"char *“中存储一定数量的数据,因为我想避免std::string在超过max_size()时耗尽内存。但是数据来自网络中的数据块,所以我每次获取数据块时都需要使用重新分配。对于C++中的字符*重新分配和连接,有什么好的解决方案吗?
发布于 2010-04-29 16:19:50
在visual studio中,max_size()是4294967294个字符,大约4 4Gb。如果您能告诉我们如何运行超过这么多字符的风险,那将是一件很有趣的事情。
如果问题不是经常出现,这只是为了确保故障安全,那么
myConcatStr(string str1, string str2)
{
if (str1.length() + str2.length()) <= str1.max_size() // if there is no overflow problem
str1.append(str2); // use stl append
else
//use alternate method instead or throw an exception
}
发布于 2010-04-29 12:34:17
发布于 2010-04-29 12:35:02
std:随着字符串大小的增长,向量会自动分配。只需随意分配一个Vector<char>
和push_back()字符即可。
https://stackoverflow.com/questions/2734777
复制相似问题