我需要保持动态的结构数组。
类型定义如下。我无法改变它们,因为它们是由一个名为flint的库(快速数理论库)提供的。
typedef struct
{
mp_ptr coeffs;
slong alloc;
slong length;
nmod_t mod;
} nmod_poly_struct;
typedef nmod_poly_struct nmod_poly_t[1];
我的结构定义如下:
typedef struct {
mp_limb_t D;
mp_limb_t length;
nmod_poly_t *s;
} she_key_symmetric_t;
所以我的问题是持有一组nmod_poly_t对象。我初始化它们并希望将它们存储在数组中。
nmod_poly_t poly;
nmod_poly_init(poly);
she_key_symmetric_t key;
// init and stuff
key.s[0] = poly; // This line does not work, because
// it always says "array type 'nmod_poly_t' (aka
// 'nmod_poly_struct[1]') is not assignable"
在下一步中,我必须从数组中取回值
she_key_symmetric_t key;
// fully initialized key
nmod_poly_t poly = key.s[0];
那么我如何声明我的动态数组 s 来存储我的结构?
提前致谢
答案 0 :(得分:1)
以下方法可行,假设已为key.s
正确分配内存并初始化
nmod_poly_t poly;
poly[0] =key.s[0][0];