【问题标题】:Returning a 2d array of chars [duplicate]返回一个二维字符数组[重复]
【发布时间】:2016-11-20 15:52:57
【问题描述】:

所以我正在编写一个程序,该程序将通过将二维数组传递给函数来加密函数中的二维字符数组,但我正在努力将其返回给 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;

}

这是我的加密函数,我试图从中返回一个字符串/二维数组 **tempArr = 加密(鲍勃,密钥); 加密(tempArr,密钥); 这就是我将数据传递给该函数的方式

【问题讨论】:

    标签: c arrays function


    【解决方案1】:

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

    【讨论】:

    • 你能举个例子吗
    • 我将其添加到答案中。
    • 是放在main还是函数里
    • 到函数,而不是char tempArr[6][6];
    • 我已经做到了,可悲的是没有用
    猜你喜欢
    • 2011-12-30
    • 1970-01-01
    • 2016-05-02
    • 1970-01-01
    • 1970-01-01
    • 2017-02-06
    • 2021-03-16
    • 2021-08-11
    • 1970-01-01
    相关资源
    最近更新 更多