双指针的一个使用实例

原创 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. {   
  3.     *p = (char *)malloc(10);   
  4. }   
  5. void getbuffer()
  6. {   
  7.     char *buffer;   
  8.     getmemory(&buffer);   

 

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

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

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

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

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

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

设计一个函数:void find1(char array[], char search, char *pa)要求:这个函数参数中的数组array是以0值为结束的字符串,要求在字符串array中查找字符...

函数指针的使用实例

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

一、类的实例化分配内存 类是结构体的演变,是一种数据类型,如int和char一样是类型。那么在类实例化时,内存是怎样分配的呢? 步骤是:(可以通过代码考证) 1.属性、方法不需要初始化,因为这些全部是...

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

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

使用map+函数指针代替switch和if-else的一个例子

很多时候我们都会遇到用switch或者if-else来进行大量判断的情况,如下面的例子int code = 4; switch (code) { case 0: // break...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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