目前,我正在为密码学项目创建矩阵。然而,当我试图在没有行和列大小的情况下将矩阵传递给函数时,我遇到了一个问题。
代码摘要:
主要是,我创建了一个Cipher类的实例,允许我获得一个输入文件(明文(和一个密钥(密钥用于加密/解密(。
然后,在Cipher.cpp
中,我为类函数做块。对于这个问题,我将重点讨论加密函数。
在里面,我初始化了一个char matrix[plaintext.size()][keySize]
。
现在,由于模块化,我想通过引用生成矩阵的函数来传递这个矩阵。这就是问题所在,我不能传递具有两个变量(plaintextSize
,keySize
(的矩阵,我只能传递具有常数值(例如char (&matrix)[5][5]
(的矩阵。
我也试过像char* matrix
那样传球,但显然不行。这个问题给我留下了一个加密函数,它可以做两件不同的事情:生成矩阵和进行实际加密,这是我不想要的。
任何帮助都将不胜感激。
您可以使用以下两种基本方法之一:
-
您可以通过一个向量的向量
-
您可以传递一个char*加上行和列,并做自己的数学
int foo(char*数组,int numRows,int numCols({int行=4;int col=3;int index=行*numCols+col;cout<lt;行<lt&"lt<col<lt"=="lt<array[index]<lt;endl;}
不过有点难看。