在我的程序我使用了一種叫做函數在C編程中如何在函數外使用數組值賦值的數組值?
void printBoard(char board[26][26], int n);
這是我的實際編碼:
#include <stdio.h>
#include <stdlib.h>
void printBoard(char board[26][26], int n);
int main(void) {
//variable 'n' determines board dimension
int n;
printf("Enter the board dimension: ");
scanf("%d",&n);
char board[n][n];
printBoard(board, n);
printf("\n\n");
for(int i=0;i<n;i++){
for(int j=0;j<n;j++){
printf("%c",board[i][j]);
}
printf("\n");
}
return (EXIT_SUCCESS);
}
void printBoard(char board[26][26], int n){
printf(" ");
for(int i=0;i<n;i++){
printf("%c",97+i);
}
printf("\n");
for(int i=0;i<n;i++){
for(int j=0;j<n;j++){
board[i][j]='U';
}
}
board[(n/2)-1][(n/2)-1]='W';
board[n/2][n/2]='W';
board[(n/2)-1][n/2]='B';
board[n/2][(n/2)-1]='B';
for(int i=0;i<n;i++){
printf("%c ",97+i);
for(int j=0;j<n;j++){
printf("%c",board[i][j]);
}
printf("\n");
}
}
數組的值「板[26] [] 26」獲取裏面的功能分配的' printBoard」。所以一旦我超出這個函數的範圍,這個值就會丟失。但是我需要在這個函數之外使用這個數組的值。我怎樣才能做到這一點?
謝謝
如果函數更改了電路板陣列的值,它應該保留在函數外部,因爲它正在修改陣列中的實際內存。它不是這樣嗎?如果沒有,請發佈更多的代碼。 – kcraigie
我在上面的問題中添加了我的實際功能@kcraigie –
是的,我期望實際上改變傳遞的數組的內容,使得該函數返回後數組將包含新值 – kcraigie