p
をint *p
と宣言した場合、メインモジュールではp=&a;
を割り当ててp
に含まれるアドレスを変更することができます。ここで、a
は既に宣言されている別の整数変数です。 は、私は今、私はアドレスの内容は変更されません関数を使用してポインタに含まれるアドレスを変更する
int main()
{
int *p;
int a=0;
p=&a; // this changes the address contained by pointer p
printf("\n The address is %u ",p);
change_adrs(p);
printf("\n the address is %u ",p); // but this doesn't change the address
return 0;
}
メインモジュールからこの関数を呼び出した場合::
void change_adrs(int*q)
{
int *newad;
q=newad;
}
としての機能を使用してアドレスを変更したいです。同じタスクに関数を使用すると何が問題になりますか?
ポインタを値で渡しています。関数内のポインタを変更する必要がある場合は、参照によってポインタを渡します。ダブルポインタ。 –