2016-11-20 2 views
-1

2次元配列を渡すことで2次元配列の文字を関数で暗号化するプログラムを書いていますが、他の関数を使うことができるようにmainに返すのは苦労しています再度暗号化して2度暗号化するなどです。2次元配列の文字を返す

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 =暗号化(ボブ、キー)から文字列/ 2次元配列を返すようにしようとしている私の暗号化機能です。 encrypt(tempArr、key); これはデータをその関数に渡す方法です。

答えて

0

関数のondによって破壊された関数からローカル変数を戻しています。 malloc()を使用して動的に割り当てる必要があります。 このようにすることができます: char **tempArr = malloc(6 * sizeof(char *)); for (i=0; i<6; i++) tempArr[i] = malloc(6 * sizeof(char)); これは、6x6の文字配列に動的にスペースを割り当てます。あなたがそれを完了したときにfree()を忘れないでください。

+0

私に例を挙げてもらえますか? –

+0

私はそれを答えに加えました。 –

+0

それはメインまたは関数に入っています –