簡體   English   中英

如何返回靜態數組指針

[英]How to return a static array pointer

我正在嘗試創建一個使用默認值創建二維數組的函數。 然后,該函數應返回該靜態數組的指針。

int* novoTabuleiro() {

    static int *novoTabuleiro[LINHAS][COLUNAS];

    //Some changes

    return novoTabuleiro;
}

然后我想做這樣的事情:

int *tabuleiroJogador = novoTabuleiro();

上面的功能有什么問題。 我收到的錯誤是“從不兼容的指針類型返回”。 謝謝。

您的注釋表明該數組是一個二維的int數組:

static int novoTabuleiro[LINHAS][COLUNAS];
return novoTabuleiro;

由於數組指針衰減,return語句中的表達式novoTabuleiro&novoTabuleiro[0]

novoTabuleiro[0]的類型是“int的數組[COLUNAS]”,即int [COLUNAS] 所以指向這個的指針是int (*)[COLUNAS]

這意味着您的功能需要:

int (*func())[COLUNAS]  {

並且調用代碼將是:

int (*tabuleiroJogador)[COLUNAS] = func();

使用函數的不同名稱比使用函數中的數組名稱更容易混淆。

你最好使用std::array

static std::array<std::array<int, LINHAS>, COLUNAS> novoTabuleiro;
return novoTabuleiro;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM