指向指针的指针的理解和应用

Posted 激情@人生

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了指向指针的指针的理解和应用相关的知识,希望对你有一定的参考价值。

总结:

1. 申请内存,此处GetMeory参数不用指向指针的指针将无法得到内存,多次调用还会造成内存泄露。  

当然此处的GetMeory可以用返回指针的方式,这样就可以不用指向指针的指针。

#include "stdafx.h"
#include <iostream>
using namespace std;
void GetMeory(char **p, int num)
{
 *p = (char *)malloc(sizeof(char) * num);
 //*p = new char[num];  //C++当中
}
int _tmain(int argc, _TCHAR* argv[])
{
 char *str = NULL;
 GetMeory(&str, 100);
 strcpy(str,"Hello");
 cout << str << endl;
 return 0;
}

2. 二级指针还经常用在动态申请二维数组

void main() 
{ 
  int m , n , **p; 
  scanf("%d%d" , &m , &n); 
  p = (int **)malloc(m * sizeof(int *)) 
  //C++中建议使用:p = new int* [m]; 
  for(i = 0 ; i < m ; i++) 
  p[i] = (int *)malloc(n * sizeof(int)); 
  //C++:p[i] = new int[n]; 

  // 释放
  for(i=0; i<m; i++)
  free(p[i]);
  delete [] p[i]; // C++ [] 不可少
  free(p);
  delete [] p;
}

    

 

参考:

http://www.jb51.net/article/37516.htm

http://blog.csdn.net/bzhxuexi/article/details/17230073

以上是关于指向指针的指针的理解和应用的主要内容,如果未能解决你的问题,请参考以下文章

理解一般指针和指向指针的指针

常指针的值不能改变,但是其指向的内容可以改变,这么理解?请举例说明下

对C指针的理解

10深入理解C指针之---指针和常量

删除指向同一个变量的指针

当指针指向数组时,为啥 operator(*) 的值不起作用?