gpt4 book ai didi

c - 矩阵作为函数参数的问题

转载 作者:太空宇宙 更新时间:2023-11-04 04:34:48 25 4
gpt4 key购买 nike

我想将一个矩阵传递给一个函数,然后将同一个矩阵返回给另一个函数。这是我的代码的一部分:

int** inizializzazione_matrice(int matrice1[][MAX_COLONNE]){
int i = 0, k = 0;

while(i < MAX_RIGHE){
k = 0;
while(k < MAX_COLONNE){
matrice1[i][k] = i;
k++;
}
i++;
}

return matrice1;}

我这样称呼这个函数:

stampa_matrice(inizializzazione_matrice(matrice1));

stampa_matrice 是一个空函数,它将 inizializzazione_matrice 的相同输入作为参数。

他们的声明是:

int** inizializzazione_matrice(int matrice1[][MAX_COLONNE]);
void stampa_matrice(int matrice1[][MAX_COLONNE]);

错误出现在 inizializzazione_matrice return matrice1; 错误代码:int (*matrice1)[10] Error type value doesn't match函数类型

我不明白为什么,因为 inizializzazione_matrice 的调用是以相同的方式完成的并且它有效。我也尝试过使用双指针作为参数,但它是一样的,我在 eclipse 中有一个旧代码,它以同样的方式工作得很好(这是可怕的部分)。我错过了什么吗?如果您需要更多信息,请告诉我!

最佳答案

你可以用更简单的方式来做:

void inizializzazione_matrice(int **matrice1, max_righe, max_colonne)
{
int i = 0, k = 0;

while (i < max_righe) {
k = 0;
while (k < max_colonne) {
matrice1[i][k] = i;
k++;
}
i++;
}
}

不需要返回matrice1,因为它是通过参数传递的(不是通过值)。

你可以用两个嵌套的 for 做得更好(代码说话):

void inizializzazione_matrice(int **matrice1, max_righe, max_colonne)
{
for (int i = 0; i < max_righe)
for (int k = 0; k < max_colonne)
matrice1[i][k] = i;
}

关于c - 矩阵作为函数参数的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32022852/

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