C :递归分配内存

C++: Allocation memory recursively?

本文关键字:内存 分配 递归      更新时间:2023-10-16
double** ptr_d = new double*[2];
ptr_d[0] = new double[50];
ptr_d[1] = new double[50];

这实际上是什么?我有点困惑

这实际上是做什么的?

第一行创建了2个指针的数组来加倍。第二和第三行创建50个双打数组,并将指针分配给第一个元素,以2个指针数组元素:

{double *, double *} //2 pointers to double
    |          |
    |          V
    |      {double1, double2, ...double50} //50 doubles
    |
    V 
{double1, double2, ...double50} //50 doubles

第一行将一组指针分配给2个 double变量。接下来的2行填充了两个阵列插槽。如果它具有更好的命名:

更容易理解。
double** temperatureValues = new double* [ 2 ];
temperatureValues [ 0 ] = new double [ 50 ];
temperatureValues [ 1 ] = new double [ 50 ];

或类似的东西。

您可以将其视为2 x 50值的2维数组。要访问您可以做的值之一:

double nextTemp = temperatureValues [ 0 ][ 32 ];