在C++17中传递没有已知大小(行和列)的2D字符数组

  • 本文关键字:数组 字符 2D C++17 c++ arrays 2d
  • 更新时间 :
  • 英文 :


目前,我正在为密码学项目创建矩阵。然而,当我试图在没有行和列大小的情况下将矩阵传递给函数时,我遇到了一个问题。

代码摘要:

主要是,我创建了一个Cipher类的实例,允许我获得一个输入文件(明文(和一个密钥(密钥用于加密/解密(。

然后,在Cipher.cpp中,我为类函数做块。对于这个问题,我将重点讨论加密函数。

在里面,我初始化了一个char matrix[plaintext.size()][keySize]

现在,由于模块化,我想通过引用生成矩阵的函数来传递这个矩阵。这就是问题所在,我不能传递具有两个变量(plaintextSizekeySize(的矩阵,我只能传递具有常数值(例如char (&matrix)[5][5](的矩阵。

我也试过像char* matrix那样传球,但显然不行。这个问题给我留下了一个加密函数,它可以做两件不同的事情:生成矩阵和进行实际加密,这是我不想要的。

任何帮助都将不胜感激。

您可以使用以下两种基本方法之一:

  1. 您可以通过一个向量的向量

  2. 您可以传递一个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;}

不过有点难看。

最新更新