2016-11-20 7 views
-1

Also schreibe ich ein Programm, das eine 2D-Array von Zeichen in einer Funktion durch die Übergabe eines 2d-Array zu ihm, aber ich habe Schwierigkeiten, es zurück zu Haupt, damit ich andere Funktionen verwenden kann wie zum Beispiel erneut verschlüsseln, um es zweimal zu verschlüsseln.Zurückgeben eines 2d Array von Zeichen

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; 

} 

das ist meine Verschlüsselungsfunktion, die ich versuche, eine Zeichenfolge/2d Array zurück von ** tempArr = encrypt (bob, Schlüssel); Verschlüsseln (TempArr, Schlüssel); und so übergebe ich die Daten an diese Funktion

Antwort

0

Sie geben eine lokale Variable von einer Funktion zurück, die von der Funktion zerstört wird. Sie müssen es dynamisch zuweisen, mit malloc(). Sie können es so tun: char **tempArr = malloc(6 * sizeof(char *)); for (i=0; i<6; i++) tempArr[i] = malloc(6 * sizeof(char)); Dies wird dynamisch Speicherplatz für 6x6 Array von Zeichen zuweisen. Vergessen Sie nicht, free() es, wenn Sie damit fertig sind.

+0

Können Sie mir bitte ein Beispiel geben –

+0

Ich fügte es der Antwort hinzu. –

+0

Geht es im Haupt oder die Funktion –

Verwandte Themen