繁体   English   中英

在C中初始化数组不起作用

[英]Initializing an array in C not working

我正在尝试用'。'填充存储在2D数组中的12x12电路板。 字符。

void initializeBoard(char board[BOARD_SIZE][BOARD_SIZE]) {
   int i, j;
   for (i=0; i<BOARD_SIZE; i++) {
      for (j=0; j<BOARD_SIZE; j++) {
         board[i][j] = '.';
      }
   }
}

然后打印:

void printBoard(char board[BOARD_SIZE][BOARD_SIZE]) {

   int i,j;

   for (i=0; i<BOARD_SIZE; i++) {
      for (j=0; j<BOARD_SIZE; j++) {
         printf(" %c", board[i][j]);
      }
      printf("\n");
   }
   printf("\n");

}

它打印出一个空的网格。 看起来好像没有什么东西存储在board [] []中。 请帮助?

看起来您做得很好,至少在您显示的代码段内。 当我运行以下程序时:

#include <stdio.h>

#define BOARD_SIZE 12

void initializeBoard(char board[BOARD_SIZE][BOARD_SIZE]);
void printBoard(char board[BOARD_SIZE][BOARD_SIZE]);

int main() {
    char board[BOARD_SIZE][BOARD_SIZE];
    initializeBoard(board);
    printBoard(board);
    return 0;
}

void initializeBoard(char board[BOARD_SIZE][BOARD_SIZE]) {
    int i, j;
    for (i=0; i<BOARD_SIZE; i++) {
        for (j=0; j<BOARD_SIZE; j++) {
            board[i][j] = '.';
        }
    }
}

void printBoard(char board[BOARD_SIZE][BOARD_SIZE]) {
    int i,j;
    for (i=0; i<BOARD_SIZE; i++) {
        for (j=0; j<BOARD_SIZE; j++) {
            printf(" %c", board[i][j]);
        }
        printf("\n");
    }
    printf("\n");
}

我得到以下输出:

$ ./a.exe
 . . . . . . . . . . . .
 . . . . . . . . . . . .
 . . . . . . . . . . . .
 . . . . . . . . . . . .
 . . . . . . . . . . . .
 . . . . . . . . . . . .
 . . . . . . . . . . . .
 . . . . . . . . . . . .
 . . . . . . . . . . . .
 . . . . . . . . . . . .
 . . . . . . . . . . . .
 . . . . . . . . . . . .

您必须以某种方式/在某处声明第二块板并将其传递给您的printBoard()函数。 您能给我们显示更多代码吗?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM