我有
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以便我可以在树数组中设置一些数据?
答案 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
,但我不明白为什么要将new
和malloc
合并在一起?
答案 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 > >
。