修改作为函数参数的指针

如何修改作为函数参数的指针?

下来看一段代码:

void f(int* p)
{
  p 
= (int*)1;
}

void main()
{
  
int* p = NULL;
  f(p);
}

p的值仍然为NULL。

将f()改为:

void f(int** p)
{
  
*= (int*)1;
}

调用时f(&p)即可将p的值改为0x00000001。

或者:

void f(int*& p)
{
  p 
= (int*)1;
}

 f(p)。

如果只能通过g()调用f():

void f(int** p)
{
  
*= (int*)1;
}

void g(int* p)
{
  f( (
int**)p );
}

那么g(&p)即可。

原文地址:https://www.cnblogs.com/burellow/p/2072086.html