gpt4 book ai didi

c - 了解如何从函数内部更新原始二维数组

转载 作者:行者123 更新时间:2023-11-30 20:43:17 25 4
gpt4 key购买 nike

我了解如何将 2D 数组传递给 C 中的函数,但我想让该函数更新原始结构而不是它的副本。我该怎么办呢?为什么我使用的方法会创建结构的副本 - 我的印象是这是与使用指针等效的另一种语法?

感谢您的帮助。我在下面包含了代码片段:

声明变量

int R[rowsize][colsize], G[rowsize][colsize], B[rowsize][colsize];
int Rnew[rowsize][colsize], Gnew[rowsize][colsize], Bnew[rowsize][colsize];

初始化函数

void blur(int rowsize, int colsize, int R[][428], int G[][428], int B[][428], int Rnew[][428], int Gnew[][428], int Bnew[][428]){
. . .
}

注意:在此函数中,RnewGnewBnew 应更新 - 每个都是二维数组。我希望在不返回任何内容的情况下完成此操作。

调用函数

blur(rowsize, colsize, R, G, B, Rnew, Gnew, Bnew)

最佳答案

你可以试试这个方法..

# include <stdio.h>
#define rowsize 3
#define colsize 3
int main()
{
int R[rowsize][colsize]={1,2,3,4,5,6,7,8,9};
int Rnew[rowsize][colsize];

copy_from_R_to_Rnew(R,&Rnew);

int i,j;

for(i=0;i<rowsize;i++)
{
for(j=0;j<colsize;j++){

printf("\t %d",Rnew[i][j]);
}

printf("\n");
}
return(0);
}

void copy_from_R_to_Rnew(int *R,int *Rnew)
{
int i,j;
for(i=0;i<rowsize;i++)
{
for(j=0;j<colsize;j++){
*(Rnew+i*colsize+j) = *(R+i*colsize+j);
}
}
}

关于c - 了解如何从函数内部更新原始二维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53767140/

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