双指针的一个使用实例

      什么是双指针?

      例如:char **p; 

      p即为双指针。

      当我们需要修改指针变量本身的值的时候,可以使用双指针。

 

      先看一个示例:

  1. void getmemory(char *ptr)
  2. {   
  3.     ptr = (char *)malloc(20);                 
  4. }    
  5. void getbuffer()
  6. {   
  7.     char *buffer = NULL;   
  8.     getmemory(buffer);   
  9. }  

      示例想要修改buffer本身这个指针的值,但是getmemory(buffer)之后,buffer的值还是NULL。 由于ptr是局部变量,对ptr做修改无法反馈到getbuffer域中。

      修改为以下示例即可:

  1. void getmemory(char **p)
  2. {   
    *p = (char *)malloc(10);   
}    void getbuffer() {        char *buffer;        getmemory(&buffer);   

 

阅读更多
文章标签: buffer null
个人分类: C++
上一篇闲得慌 & 忙得晕
下一篇谁动了我的代码?
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭