假设我们有以下设计:
typedef struct {
double **pdouble;
int *pint
}foo;
现在我要分配:
foo *pfoo;
问题是pdouble的总数是已知的,让我们说n;如果我们说** pdouble就像pdouble [a] [b],a也是众所周知的 . 表示a * b = n . 但是b是动态的 . mean pdouble [1]可能包含b列,而pdouble [2]可能有b'列数,b和b',b“......将逐渐在程序中生成 . 值得注意的是bb'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))
}
我忽略了大家都知道的错误和其他必需的东西 .
就这样;
1 回答
首先分配
struct
内存然后为
struct
成员double **pdouble;
分配内存最后为
struct
成员int *pint
分配内存