修改作为函数参数的指针

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

下来看一段代码:

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)即可。

posted on 2011-06-03 17:06  burellow  阅读(348)  评论(0编辑  收藏  举报

导航