まず
int*row=10;
int* col=10;
これは間違っています。ハードコードされたアドレスの割り当て。あなたはこれが欲しくないです
int row=10;
int col=10;
行と列のアドレスを取得するには?
&row
および&col
。
どのように機能させるには?
は、ポインタへのポインタを渡す方法changeNum(&row,&col);
void changeNum(int*setRows, int *setCol)
{
...
}
、それを呼び出しますか?
void changeNum(int*setRows, int *setCol)
{
chnageNum2(&setRows, &setCol);
}
ChangeNum2
どのように値が変更されるのですか?
void chnageNum2(int **setRows, int **setCol){
**setRows = 110;
**setCol = 110;
}
我々は唯一changeNum()
を使用して、同じ変更を行うことができますか?
はい、私たちはそれを行うことができます。
void changeNum(int*setRows, int *setCol)
{
*setRows = 110;
*setCol = 110;
}
確かにthisをチェックします。本を掴む。それは多くの助けになります。
完全なコードは、それがすべてのC関数のパラメータは値渡しされていることを把握するためにいつか取る
void changeNum(int*setRows, int *setCol)
{
changeNum2(&setRows,&setCol);
}
void changeNum2(int**setRows, int **setCol)
{
**setRows=5;
**setCol=5;
}
int main(void) {
int row=10;
int col=10;
changeNum(&row,&col);
printf("%d %d",row,col);
return 0;
}
教科書/オンラインコース/個人教師は、あなたを助けることができるはずです。 – John3136
質問タイトルだけは、あなたが3スタープログラマ(http://wiki.c2.com/?ThreeStarProgrammer)に近づいていることを示しています。再考してください。 – Yunnosch