如何动态分配数组空间?c++

比如定义了chara[]="hello";现在想把他扩大为20个字符,怎么做?那我连接chara[]="hello";char[]="good";杂做?别告诉我声明成ch... 比如定义了
char a[]="hello";
现在想把他扩大为20个字符,怎么做?
那我连接char a[]="hello";char[]="good";杂做?
别告诉我声明成char[100]="hello";来做哈!!
展开
 我来答
giwawe
2008-11-02 · TA获得超过897个赞
知道小有建树答主
回答量:242
采纳率:100%
帮助的人:329万
展开全部
数组经过定义了之后就无法跟改其大小,如果需要这样的话,只有要求系统重新分配一个新的内存空间用于存放更大的数组,然后把原数组的所有元素复制到新分配的内存空间中。考虑到在定义数组时不知道数组的长度,那时可以考虑动态的分配数组:

size_t n = getsize();
int* a = new int[n];
for(int* b = a; b != a+n; ++b)

但是这样动态的分配了数组的空间是需要手动释放这个空间的,不然会一直占用这个空间知道你手动释放它。

delet [] a;

如果可以的话还是建议使用string类吧,简单方便。
zhaowenjingwgq
2008-11-02
知道答主
回答量:20
采纳率:0%
帮助的人:0
展开全部
char a[]="hello";
char *b=new char[20];
strcpy(b,a);
delete [] b;

再在头文件中 加#include <string.h>

以后就用b数组吧! 好像只有这个方法了!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
weide361
2008-11-02 · TA获得超过604个赞
知道小有建树答主
回答量:287
采纳率:0%
帮助的人:326万
展开全部
像这种数组是不能加长的,只能另外开一个数组了
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
舒拔博士
2008-11-02 · TA获得超过306个赞
知道小有建树答主
回答量:302
采纳率:0%
帮助的人:0
展开全部
使用string
int main()
{
string a = "hello";
string b = " world";
string c = a + b;
cout<<c;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
昏昏灯火语生平
2008-11-02 · 超过34用户采纳过TA的回答
知道答主
回答量:143
采纳率:0%
帮助的人:116万
展开全部
好似stl里面得函数能动态分配,
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式