c++中动态数组增长问题
动态数组可以设置变量,但是在运行过程中大小就是确定的,现在如果我想在运行时随时增加数组长度,比如说最开始我的动态数组是
string* ss;
ss=new string[number+1];
运行时初始化number=1,然后需要增加number的值,不能再重设一个
number++;
ss=new string[number+1];
,那么要怎么做呢?
[解决办法]
我觉得的其他类型的,比如int,char应该可以动态增长,string就难说了
[解决办法]
申请新的,复制数据,删除旧的
你可以用vector,已经帮你封装了
[解决办法]
建议学习《C++ standard template library》
[解决办法]
都已经用 string 了;
何不多用一个。
std::vector< std::wstring > strings;
[解决办法]
我们谈C。如果你的内存不够了。那么就使用一个malloc,申请比你现在拥有的更大的空间,然后使用memcpy函数把你的数据从原来小的内存拷贝到大内存空间内。如果你使用什么STL之类的,其实内部就是这么实现的。