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

来源:百度知道 编辑:UC知道 时间:2024/06/16 16:20:08
比如定义了
char a[]="hello";
现在想把他扩大为20个字符,怎么做?
那我连接char a[]="hello";char[]="good";杂做?
别告诉我声明成char[100]="hello";来做哈!!

像这种数组是不能加长的,只能另外开一个数组了

数组经过定义了之后就无法跟改其大小,如果需要这样的话,只有要求系统重新分配一个新的内存空间用于存放更大的数组,然后把原数组的所有元素复制到新分配的内存空间中。考虑到在定义数组时不知道数组的长度,那时可以考虑动态的分配数组:

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

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

delet [] a;

如果可以的话还是建议使用string类吧,简单方便。

使用string
int main()
{
string a = "hello";
string b = " world";
string c = a + b;
cout<<c;
}

char a[]="hello";
char *b=new char[20];
strcpy(b,a);
delete [] b;

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

以后就用b数组吧! 好像只有这个方法了!

好似stl里面得函数能动态分配,

用string类