Если я объявил указатель p
как int *p
; в основном модуле я могу изменить адрес, содержащийся в p
, назначив p=&a;
, где a
- еще одна объявленная целочисленная переменная.
Теперь я хочу изменить адрес, используя функцию as::
void change_adrs(int*q)
{
int *newad;
q=newad;
}
Если я вызываю эту функцию из основного модуля
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;
}
содержимое адреса не изменяется. Что неправильно с использованием функции для одной задачи?