如何在多维数组中输入值?

时间:2012-08-16 10:11:08

标签: c++ multidimensional-array

我有

main(){...
float **tree;   
//How to set some values here for e.g. If I want tree to be a 15x2 array of some values?
reprVectorsTree *r1 = new reprVectorsTree(tree,8,2);
...}

reprVectorsTree(float **tree, int noOfReprVectors, int dimensions)
{.....

如何在这里使用malloc以便我可以在树数组中设置一些数据?

2 个答案:

答案 0 :(得分:1)

要为tree分配内存,请尝试以下操作:

float** tree;
tree = (float**)malloc(15 * sizeof(float*));
for(i = 0; i < 15; i++) 
    tree[i] = (float*)malloc(2 * sizeof(float));

现在您可以设置值:

for(i = 0; i < 15; i++)
    for(j = 0; j < 2; j++)
        tree[i][j] = 2;

请稍后忘记free,但我不明白为什么要将newmalloc合并在一起?

答案 1 :(得分:0)

我想这是你想要分配的tree变量。

你可以这样做:

float **tree;

// Allocate 15 "arrays"
tree = new float*[15];

for (int i = 0; i < 15; i++)
{
    // Allocate a new "array" of two floats
    tree[i] = new float[2];

    // Fill the newly allocated floats with "random" data
    tree[i][0] = 1.0;
    tree[i][1] = 2.0;
}

但是,如果可能,我建议您将reprVectorsTree对象更改为接受std::vector< std::vector< float > >