C++ 当我试图将一行从一个二维动态数组复制到另一个二维动态数组时,我的程序会出错

C++ 当我试图将一行从一个二维动态数组复制到另一个二维动态数组时,我的程序会出错,c++,segmentation-fault,dynamic-arrays,C++,Segmentation Fault,Dynamic Arrays,整个程序的目的是解码以列密码编码的文本输入,不知道用英语怎么说,只需在输入文本并读取文本后交换两个2D数组中的列。 两个2D动态数组声明正确,工作正常,直到我尝试将值从一个数组分配到另一个数组,它们具有相同的维度 经过一个小时的调试,我知道line result[row][line]=txt[key[row]][line]存在故障。如果更改为例如result[row][line]=“b”,则动态数组结果将按其应该的方式用b填充。 但要完成我的分配,我需要解码信息!所以我必须把结果的第一行,txt

整个程序的目的是解码以列密码编码的文本输入,不知道用英语怎么说,只需在输入文本并读取文本后交换两个2D数组中的列。 两个2D动态数组声明正确,工作正常,直到我尝试将值从一个数组分配到另一个数组,它们具有相同的维度

经过一个小时的调试,我知道line result[row][line]=txt[key[row]][line]存在故障。如果更改为例如result[row][line]=“b”,则动态数组结果将按其应该的方式用b填充。 但要完成我的分配,我需要解码信息!所以我必须把结果的第一行,txt数组中的行放进去。key数组的第一个元素表示txt数组的哪一行应该复制到结果数组的第一行,然后复制到第二行,以此类推

void decipher ( char **txt, char **result, char *key, int rowNumber, int  lineNumber)
{


int line = 0;
int row = 0 ;
do{
    if(line == lineNumber) break;
    if(row == rowNumber) {
            row  = 0; line;
    }
    result[row][line] = txt[key[row]][line];  //Segfault HERE !
    ++row;
}while(true) ;

}

密钥数组大小是否正确?行=0;线应该做什么?键[行]的值是多少?您确定它是txt中的有效索引吗?顺便说一句:我有一种感觉那句话;缺少一个++或什么。确实,行缺少++,好眼力!:键数组的长度与rowNumber相同。键[x]的每个值指示应将txt数组的哪一行/列复制到结果数组的x行/列。键[row]的值不可能超过txt的索引。我用键盘输入键。顺便说一句:程序代码中没有缺少+,我只是粘贴错了。故障依然存在。