Это не изменит фактическое значение p
, потому что функция q
in является локальной для этого, и изменение этой функции не будет отображаться в main
, поэтому передайте адрес p
вместо передачи p
по значению
Используйте этот синтаксис ниже
void change_adrs(int **q)
{
int * otheraddess;
*q = otheraddress;
}
и называйте это change_adrs(&p);
Или у вас есть другой способ: изменить возврат тип функции и поймать возвращенный адрес.
int* change_adrs(int *q)
{
int * otheraddess;
q = otheraddress;
return q;
}
int main()
{
p=change_adrs(p);
return 0;
}