c++使用new申请数组
时间: 2024-01-13 10:02:39 浏览: 32
在C++中,使用new运算符可以动态地申请数组。下面是两个例子:
1. 申请一个大小为n * n的二维数组
```cpp
int n = 10;
int **a = new int*[n];
for (int i = 0; i < n; i++) {
a[i] = new int[n];
}
// 其余代码
for (int i = 0; i < n; i++) {
delete[] a[i];
}
delete[] a;
```
2. 申请一个大小为n * n * n的三维数组
```cpp
int n = 10;
int ***a = new int**[n];
for (int i = 0; i < n; i++) {
a[i] = new int*[n];
for (int j = 0; j < n; j++) {
a[i][j] = new int[n];
}
}
// 其余代码
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
delete[] a[i][j];
}
delete[] a[i];
}
delete[] a;
```
相关问题
C++ new申请数组
在 C++ 中,我们可以使用 `new` 运算符申请动态数组。使用 `new` 运算符申请动态数组的语法如下:
```cpp
type *array_name = new type[size];
```
其中,`type` 为数组元素类型,`array_name` 为数组名,`size` 为数组大小。
例如,要在堆上分配一个包含 5 个 `int` 类型元素的数组,可以使用以下代码:
```cpp
int *arr = new int[5];
```
这将在堆上分配一段连续的内存空间,用于存储 5 个 `int` 类型的元素,并返回一个指向第一个元素的指针。
同样需要注意的是,在使用 `new` 运算符申请动态数组时,同样需要使用 `delete[]` 运算符释放内存。例如,在上面的例子中,可以使用以下代码释放内存:
```cpp
delete[] arr;
```
这将释放 `arr` 所指向的内存,并销毁整个数组。
C++结构体数组new申请内存
可以使用动态内存分配函数malloc来申请结构体数组的内存空间。例如,可以这样申请一个包含5个结构体的数组:
```
struct MyStruct {
int myInt;
char myChar;
};
struct MyStruct *myArray = malloc(5 * sizeof(struct MyStruct));
```
注意,使用完毕后需要释放内存空间,避免内存泄漏:
```
free(myArray);
```