如何动态分配数组空间?c++
比如定义了chara[]="hello";现在想把他扩大为20个字符,怎么做?那我连接chara[]="hello";char[]="good";杂做?别告诉我声明成ch...
比如定义了
char a[]="hello";
现在想把他扩大为20个字符,怎么做?
那我连接char a[]="hello";char[]="good";杂做?
别告诉我声明成char[100]="hello";来做哈!! 展开
char a[]="hello";
现在想把他扩大为20个字符,怎么做?
那我连接char a[]="hello";char[]="good";杂做?
别告诉我声明成char[100]="hello";来做哈!! 展开
6个回答
展开全部
数组经过定义了之后就无法跟改其大小,如果需要这样的话,只有要求系统重新分配一个新的内存空间用于存放更大的数组,然后把原数组的所有元素复制到新分配的内存空间中。考虑到在定义数组时不知道数组的长度,那时可以考虑动态的分配数组:
size_t n = getsize();
int* a = new int[n];
for(int* b = a; b != a+n; ++b)
但是这样动态的分配了数组的空间是需要手动释放这个空间的,不然会一直占用这个空间知道你手动释放它。
delet [] a;
如果可以的话还是建议使用string类吧,简单方便。
size_t n = getsize();
int* a = new int[n];
for(int* b = a; b != a+n; ++b)
但是这样动态的分配了数组的空间是需要手动释放这个空间的,不然会一直占用这个空间知道你手动释放它。
delet [] a;
如果可以的话还是建议使用string类吧,简单方便。
展开全部
char a[]="hello";
char *b=new char[20];
strcpy(b,a);
delete [] b;
再在头文件中 加#include <string.h>
以后就用b数组吧! 好像只有这个方法了!
char *b=new char[20];
strcpy(b,a);
delete [] b;
再在头文件中 加#include <string.h>
以后就用b数组吧! 好像只有这个方法了!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
像这种数组是不能加长的,只能另外开一个数组了
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
使用string
int main()
{
string a = "hello";
string b = " world";
string c = a + b;
cout<<c;
}
int main()
{
string a = "hello";
string b = " world";
string c = a + b;
cout<<c;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
好似stl里面得函数能动态分配,
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询