【发布时间】:2018-12-29 23:48:50
【问题描述】:
我已经在这个网站上呆了几个小时了,我阅读了很多新技术和编程定义的函数,但我仍然对如何将它应用到我自己的程序中感到有些困惑。我试图慢慢开始并建立一个跳棋游戏。所以首先我创建了一个函数来创建一个 Board。当然,我研究并读到 C 不容易让您从函数返回 char 数组。所以我阅读了使用 malloc 或 calloc 的内存分配。
所以我的第一个错误......
void printBoard(char arr[9][19]);
int makeMove(char arr[11][23], int king, struct player P, char player);
char *createBoard();
char Rows[8]="ABCDEFGH";
int main()
{
int x, y;
int isKing = 1;
char checkerBoard[9][19];
checkerBoard[9][19] = createBoard();
printBoard(checkerBoard);
/* ... */
}
然后……
void printBoard(char array[9][19])
{
for (int i = 0; i < 9; i++) {
for (int j = 0; j < 19; j++)
printf("%c", array[i][j]);
}
printf("\n");
};
char * createBoard()
{
// where I put code
return checkerBoard[9][19];
}
我故意省略了 createBoard() 中的代码,这很多。因此,当使用 void *malloc(size_t size) 时,我知道我需要指定大小为 4 * sizeof(char) 的字节,但数组的大小也不在那里吗?另外,将 checkerBoard 数组更改为静态会更好吗?
【问题讨论】:
-
4 * sizeof(char)与4 * 1相同。char Rows[8]="ABCDEFGH";你没有空间'\0' -
尝试理解This DEMO
-
问题不清楚吗?
标签: c multidimensional-array static malloc