我知道,对于交换,将任何作为参数传递的数据更改为更改数据的函数,在C中,我们实际上需要传递数据被改变。对于普通的数据或数组,这很容易,但是当涉及到数组数组时,我陷入了困境,并且感到困惑。使用C语言更改函数列阵(矩阵)的值
在我主我:
int p[20][21];
FILE *f;
f=fopen("intro.txt","rt");
m=0;
n=0;
while((c=getc(f)) != EOF)
{
if(c==' ')
{
p[m][n]=0;
n++;
}
else if(c=='^')
{
pa[m][n]=5;
n++;
}
else if(c=='*')
{
p[m][n]=1;
n++;
}
else if(c=='#')
{
p[m][n]=-1;
m++;
n=0;
}
}
的代码块是创造我的矩阵,根据我的txt文件。在我的项目中,这是初始化将在以后使用的矩阵的步骤。
创建我的矩阵后,我需要改变我的矩阵各个岗位的一些值,比如:
p1m=0;
p1n=0;
p2m=19;
p2n=20;
p[p1m][p1n]=5;
p[p2m][p2n]=5;
但我必须这样做,在一个函数中,我的矩阵传递给函数,并在我的主要内容中更改我的矩阵。
我试着设置参数的功能:
void myfunc(int* p[20][21])
和访问它的主像:
(myfunc &p[20][21])
或者
void myfunc(int** p[20][21])
但我想我没有以正确的方式去做。
是的,我正是这样做,在一些矩阵元素上分配新的值,但是,在一个函数上调用main函数,就像myfunc(p20)[21])不起作用C. – 2012-03-16 14:53:49
@CristiCimpean:你可以调用'myfunc(p);'。让我编辑它。 – 2012-03-16 14:56:19
可爱。我现在感到很蠢。谢谢你们俩。 – 2012-03-16 15:03:16