我正在尝试创建一个函数来创建具有默认值的二维数组。然后,该函数应返回该静态数组的指针。
int* novoTabuleiro() {
static int *novoTabuleiro[LINHAS][COLUNAS];
//Some changes
return novoTabuleiro;
}
然后我想做这样的事情:
int *tabuleiroJogador = novoTabuleiro();
上面的函数有什么问题。我收到的错误是“从不兼容的指针类型返回”。谢谢。
最佳答案
您的评论表明该数组是一个二维整数数组:
static int novoTabuleiro[LINHAS][COLUNAS];
return novoTabuleiro;
由于数组指针衰减,返回语句中的表达式 novoTabuleiro
与 &novoTabuleiro[0]
含义相同。
novoTabuleiro[0]
的类型是“array [COLUNAS] of int”,即 int [COLUNAS]
。所以指向它的指针是 int (*)[COLUNAS]
。
这意味着您的功能需要:
int (*func())[COLUNAS] {
调用代码为:
int (*tabuleiroJogador)[COLUNAS] = func();
与函数内的数组名称相比,为函数使用不同的名称会更容易混淆。
关于c++ - 如何返回静态数组指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28399577/