gpt4 book ai didi

c - 在 C 函数中传递数组

转载 作者:行者123 更新时间:2023-11-30 14:31:44 25 4
gpt4 key购买 nike

我有这段代码,它正在模拟康威的游戏(对于这个问题来说这并不重要),我只是想知道如何将我的数组、棋盘传递给我的函数邻居。我不断收到编译器错误,指出函数声明中的元素类型不完整,尽管我被告知需要将空方括号放在那里来传递函数,并且如果没有方括号,它就无法工作。如果有人可以帮助这里传递该函数,那将非常有帮助。这是我的代码:

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

struct info
{
int red;
int blue;
};

struct info neighbor(char board[][], int, int);

int main(int argc, char* argv[])
{
if(argc != 3)
{
printf("usage: dimensions repititions\n");
return 1;
}
srand(time(NULL));
int games = 0;
int d = atoi(argv[0]);
int repititions = atoi(argv[1]);
//create board
char board [d][d];
for(int i = 0; i < d; i++)
{
for(int j = 0; j < d; j++)
{
int choice = rand() % 100;
if(choice < 44)
{
if(choice % 2 == 0)
{
board[i][j] = '#';
}
else
{
board[i][j] = '*';
}
}
else
{
board[i][j] = '.';
}
}
}
while(games < repititions)
{
for(int i = 0; i < d; i++)
{
for(int j = 0; j < d; j++)
{
neighbor(board, i, j);
}
}
}

}

struct info neighbor(char board, int i, int j)
{
char grid [3][3];
for(int u = 0; u < 3; u++)
{
for(int v = 0; v < 3; v++)
{
grid[u][v] = board[i][j];
i ++;
}
j++;
}
}

最佳答案

将多维数组传递给函数时,必须指定除第一个维度之外的所有维度的大小。当这样的数组是可变长度时,声明应如下所示:

struct info neighbor(int, int, char board[*][*]);

定义如下:

struct info neighbor(int i, int j, char board[i][j]) {

关于c - 在 C 函数中传递数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60142499/

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