返回二维数组的字符

时间:2016-11-20 15:52:58

标签: c arrays function

所以我正在编写一个程序,它会通过传递一个2d数组来加密函数中的二维chars数组,但我很难将它返回到main,所以我可以使用其他函数,例如再次加密来加密它两次。

char *encrypt(char bob[6][6], int key[6])[6][6]
{
int i ,j;
char tempArr[6][6];
printf("\n");
for (i = 0; i < 6; i++) {

    for (j = 0; j < 6; j++)
    {
        int col = key[j];
        printf("%c", bob[i][col]);
         tempArr[i][j] = bob[i][col];
    }

    printf("\n");
}
for (i = 0; i < 6; i++) {
    for (j = 0; j < 6; j++)
    {
        printf("%c", tempArr[j][i]);
    }
    printf(" ");
}

return tempArr;

}

这是我的加密函数,我试图从中返回一个字符串/ 2d数组       ** tempArr = encrypt(bob,key);       encrypt(tempArr,key); 这就是我将数据传递给该函数的方式

1 个答案:

答案 0 :(得分:0)

您正在从函数返回局部变量,该函数由函数的ond销毁。您必须使用malloc()动态分配它。 你可以这样做: char **tempArr = malloc(6 * sizeof(char *)); for (i=0; i<6; i++) tempArr[i] = malloc(6 * sizeof(char)); 这将为6x6字符数组动态分配空间。完成后不要忘记free()