gpt4 book ai didi

c - 二维数组类型错误

转载 作者:行者123 更新时间:2023-11-30 15:04:57 25 4
gpt4 key购买 nike

基本上,在下面的代码中我有一个初始化二维数组的函数。在主函数中,我尝试使用不同大小的数组来测试该函数。但是,我收到以下错误:“错误:数组类型具有不完整的元素类型 void chessBoard(char board[][], int length, int width)”和“错误:形参1的类型不完整”。 棋盘(棋盘1,长度1,宽度1);。有什么建议吗?

    #include <stdio.h>
#include <stdlib.h>

void chessBoard(char board[][], int length, int width)
{
for (int i = 0; i < length; i++)
{
for (int j = 0; j < width; j++)
if ((i + j) % 2 == 0)
board[i][j] = 'b';
else
board[i][j] = 'w';
}
}

int main()
{
char board1 [3][4];
int length1 = sizeof board1 / sizeof board1[0];
int width1 = sizeof board1[0] / sizeof(int);
chessBoard(board1, length1, width1);
int i, j;
for(i = 0; i < length1; i++)
{
for(j = 0; j < width1; j++)
printf("%c", board1[i][j]);

printf("\n");
}
printf("\n");
}

最佳答案

你应该这样声明你的函数:

void chessBoard(char board[][4], int length, int width)

这个C FAQ彻底解释了原因。其要点是数组一旦衰减为指针,就不会递归地发生。数组的数组会衰减为指向数组的指针,而不是指向指针的指针。根据 C 标准,您可以将任何维度数组传递给函数,只要将除第一个维度(可以为空)之外的所有维度指定为常量即可。

关于c - 二维数组类型错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40060529/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com