2016-11-20 3 views
-1

그래서 2 차원 배열을 전달하여 함수의 char 배열의 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

주 또는 함수에 포함 되나요 –