我试图在C中创建一个矩阵,其中每个元素都是一个Bignum(来自Openssl库)。
我原以为会是这样的,但没用。
BIGNUM *p [2][2] = NULL;
int i; int j;
for(i=0;i<2;i++){
for(j=0;j<2;j++){
*p[i][j] = BN_new();
}
}
我很感激你的帮助。
最佳答案
我假设BN_new()
的返回类型是BIGNUM *
。
由于BIGNUM *p[2][2]
是一个2*2数组,并且元素的数据类型是BIGNUM*
,因此对数组p
元素的赋值如下所示:
p[i][j] = BN_new();
这意味着您的代码应该如下所示:
BIGNUM *p[2][2] = {NULL, NULL, NULL, NULL};
for( int i=0; i<2; ++i ) {
for( int j=0; j<2; ++j ) {
p[i][j] = BN_new();
}
}
表达式
*p[i][j]
将通过指针BIGNUM
间接访问p[i][j]
值。这是可行的,因为索引运算符[]
优先于间接运算符*
。关于c - C创建一个Bignum矩阵,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48403289/