C 创建一个 Bignum 矩阵

标签 c matrix openssl bignum

我试图在 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] 将通过指针 p[i][j] 间接访问 BIGNUM 值>。这是可行的,因为索引运算符 [] 优先于间接运算符 *

关于C 创建一个 Bignum 矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48403289/

相关文章:

c - 枚举名称有什么作用?

对称矩阵的 C++ 容器和 == 运算符

c - 将 memcpy 与结构字段一起使用

c - 如何从字符串生成我自己的哈希码?

c - 合并两个已排序数组的困难

ruby - 将矩阵求和为数字而不是字符串 ruby

python - Theano:如何获取元素为矩阵的 "matrix outer product"

docker 通过 https 提供内容而没有域(仅具有公共(public) IP 地址)

ios - 无法接收推送通知

performance - 此次主机扫描中最快的 SSL 加密算法是什么?