创建双指针

时间:2016-04-18 08:34:42

标签: c++ pointers double-pointer

我可以了解以下命令中发生的情况吗? 这里我们将H作为结构,n作为整数类型结构元素。什么是var基本上在此之后?

float **var;
var = new float* [H.n];

1 个答案:

答案 0 :(得分:0)

H.n可能是一个整数,例如10

float **var = new float*[10];

为简化起见,您可以为float*创建别名,并将其命名为pfloat

typedef float* pfloat;
pfloat *var = new pfloat[10];

所以这只是10个指针。可以分配每个指针以创建单独的数组,从而生成2D数组:

//initialize 10 x 20 array:
float **var = new float*[10];
for (int i = 0; i < 10; i++)
    var[i] = new float[20];

//use:
for (int i = 0; i < 10; i++)
{
    for (int j = 0; j < 20; j++)
    {
        var[i][j] = i * 20 + j + 0.1f;
        cout << var[i][j] << "\n";
    }
}

//cleanup:
for (int i = 0; i < 10; i++)
    delete[]var[i];
delete[]var;