我知道,對於交換,將任何作爲參數傳遞的數據更改爲更改數據的函數,在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