C++ 中如何动态创建数组?

C++ 中如何动态创建(申请)数组?包括二维的共有几种方法?
2025-05-10 07:38:01
推荐回答(3个)
回答1:

定义数组时,数组的大小必须为常量,即在编译时就要存在的数值,如:int arr[5];
当数组大小要根据程序的执行情况确定时,可采用创建动态数组的形式,如:
int x(10);
char* test = new char [x];
动态创建的数组,在程序结束之前一定要释放内存,否则会造成内存泄漏,如:delete [] test

回答2:

有动态的和静态的
new/delete
malloc/free

例如:
分配内存
int **a = new int* [lenth];
for(int i = 0; i < lenth; ++i)
a[i] = new int [lenth];

释放内存:
for(int i = 0; i < lenth; ++i)
delete []a[i];
delete []a;

回答3:

new/delete和malloc/free是动态申请固定大小数组的方法。
用Vector<>,可以生成动态大小的向量,和数组功能类似,但是数组的大小动态可变。