双指针的一个使用实例

原创 2011年01月19日 18:51:00

      什么是双指针?

      例如: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);   

 

shared_ptr和weak_ptr智能指针结合使用的一个实例

结合shared_ptr、weak_ptr 一个实例。 感觉这个例子很好, 结合了很多知识技术。这个实例功能是非常简单模拟实现std::vector。 (只是非常简单一些操作),当然也可以继续扩展,甚...

用一个实例来对比函数指针(纯C写…

C++的多态本质也是由函数指针来实现的。一般来说:写得好的多态比函数指针易于理解和维护,代码也比较简洁。     用一个例子来来说明吧,下面用C++和C分别实现了两个管道框架,每个管道就是对输入处理一...

ADA程序实例(一个简单的智能指针实现)

普通的ADA并不含有垃圾收集等托管程序的特性,除非当ADA的目标运行时建立在Java Virtual Machine或.NET系统上。所以从这个对象内存分配角度,ADA和C++基本上是等价的。 AD...
  • quanben
  • quanben
  • 2011年11月16日 22:28
  • 1064

函数指针的使用实例

  • 2014年07月30日 17:09
  • 1KB
  • 下载

漫谈C指针第十四讲---一个指针应用实例

设计一个函数:void find1(char array[], char search, char *pa)要求:这个函数参数中的数组array是以0值为结束的字符串,要求在字符串array中查找字符...
  • will130
  • will130
  • 2015年09月08日 15:02
  • 151

使用指针和引用处理虚函数实例

  • 2015年04月14日 19:40
  • 1.62MB
  • 下载

使用函数指针或静态模板的实例

说明:通过函数指针或者静态模板来简化程序,提供灵活性。函数指针:一个函数在编译是被分配给一个入口地址,这个入口地址就 为函数指针,正如同指针是一个变量的地址一样。有些地方必须使用函数指针才能完成操作...

C++——类实例化内存的分配和this指针的使用

一、类的实例化分配内存 类是结构体的演变,是一种数据类型,如int和char一样是类型。那么在类实例化时,内存是怎样分配的呢? 步骤是:(可以通过代码考证) 1.属性、方法不需要初始化,因为这些全部是...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:双指针的一个使用实例
举报原因:
原因补充:

(最多只允许输入30个字)