分配动态多数组



假设我们有以下设计:

typedef struct {
  double **pdouble;
  int *pint
}foo;

现在我想分配:

foo *pfoo;

问题是pdouble的总数是已知的,假设是n;如果我们说**pdouble类似于pdouble [a][b],那么a也是已知的。表示a*b =n。但是b是动态的。平均pdouble[1]可能包含b列,pdouble[2]可能包含b'列数,也有b和b',b '…将在程序中逐渐产生。值得注意的是,b+b'+b ' '+…= n。有可能只用知道n和a来分配foo吗?

我要编辑一下,这样我的问题会更容易理解。

allocation_func(in size, int block_size)
foo *pfoo;
pfoo = (foo*) malloc(sizeof(foo))
/*some code here to do block_size number of *double which I don't know*/

foo->pdouble = (double**) malloc ( size * sizeof(double))
}

我忽略了错误和其他每个人都知道的必要的东西。
这所有的;

首先分配struct内存

 foo *pfoo = malloc(sizeof *pfoo); 

struct成员double **pdouble;分配内存

//for example purpose i take 50x50 array
pfoo->pdouble = malloc(50* sizeof(double *));
for(int i=0;i<50;i++)
    pfoo->pdouble [i] = malloc(50* sizeof(double ));
最后为struct成员int *pint分配内存
 pfoo->pint=malloc(100*sizeof(int)); //100 is just for example

相关内容

  • 没有找到相关文章