gpt4 book ai didi

c - 传递二维数组时发出警告

转载 作者:太空宇宙 更新时间:2023-11-04 00:16:01 24 4
gpt4 key购买 nike

我有以下功能

void initBoard(int * board[BOARD_ROWS][BOARD_COLS]){
int z = 0;
for( z = 0; z<10; z+=1){
int l;
for( l = 0; l<10; l+=1){
board[z][l] = 0;
}
}
}

从主要我称它为

  int plBoard[10][10];
initBoard(&pcBoard);

编译时它可以工作,但我收到一条警告:警告:从不兼容的指针类型传递“initBoard”的参数 1。数组是一个整数,并且函数需要一个 int 指针,我正在传递 int 的地址。有什么问题吗?

最佳答案

除了你问题中明显的拼写错误( plBoard 的定义但是 pcBoard 的使用),你不需要传递带有地址的数组运算符 (&),因为它们会自动转换为地址。

但是你的incompatible type问题是由于使用了:

int * board[BOARD_COLS][BOARD_ROWS]

它实际上是 int pointers 的二维数组(技术上是指向 int 的指针数组),而不是你期望的整数.

你应该使用:

void initBoard(int board[BOARD_COLS][BOARD_ROWS]) {  // <-- remove "*"
: : :
}
int plBoard[10][10];
initBoard(plBoard); // <-- remove "&"

关于c - 传递二维数组时发出警告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/837766/

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