请问:C++中数组长度怎么动态分配?!

来源:百度知道 编辑:UC知道 时间:2024/05/31 08:57:23
就是怎么根据具体情况由系统来分配数组的大小!

int N ;// 定义一个int型整数 N
//当N的值确定以后,再定义数组
int *p = new int[N];//p[N]就是你要的数组
//但是这种方法,数组不用以后,必须自己释放
delete []p; //释放数组

数组的长度一旦固定下来就不可以增长了
但是string为什么可以用加法呢?是因为他是c++字符串的形式重载了加法运算符
在数组的长度固定下来就不可以再动态分配内存了
最好的方式是你提前知道你要存储的字符,整数,或者对象的个数,用一个常量来接受数组的长度,再用这个长度来定义数组,就可以了
具体的函数为: char * cha = new char[N];
这是分配一个字符型数组
什么不懂还可以多交流

在C++中,你可以使用这个格式喃,
printf("请输入数组大小:")
scanf("%d",&n);
int a[n]

比如分配字符型吧

1、char *buffer=(char *)malloc(sizeof(char)*100);//分配100个字符
。。。// 处理用,用完要释放内存
free(buffer);

2、char *buffer=new char[100];
。。。
delete []buffer; // 注意方括号

3、char *buffer=GlobeAlloc(sizeof(char)*100);//我记不太清楚了,自己查一下这种
GlobeLock(buffer);
... ...
GlobeUnlock(buffer);
GlobeFree(buffer);