牛骨文教育服务平台(让学习变的简单)
博文笔记

用new创建一个二维数组,有两种方法,是等价的

创建时间:2014-04-05 投稿人: 浏览次数:951
//用new创建一个二维数组,有两种方法,是等价的   
  一:   
  int   (*p)[10]   =   new   int[5][10];   
  二:   
  int   **p   =   new *  int[5];   
  for(int   i=0;i<5;i++)   
          p[i]   =   new   int[10];   
    
  //指针数组的创建,也有两种方法   
  一:   
  char   *pa   =   new   char[4];   
  for   (int   i=0;i<4;i++)   
  {   
          pa[i]   =   new   char[8];   //为每个指针都分配8个char元素空间。   
  }   
  二:   
  char   *pa[4];//可以不用new创建   
  for   (int   i=0;i<4;i++)   
  {   
          pa[i]   =   new   char[8];   //为每个指针都分配8个char元素空间。   
  }   
    
    
  //delete二维数组   
  for(int   i=0;   i<5;   ++i)   
          delete   []   p[i];   
  delete   []p;   
    
  //delete指针数组   
  一:   
  for(int   i=0;   i<4;   ++i)   
          delete   []   pa[i];   
  delete   []pa;   
  二:   
  for(int   i=0;   i<4;   ++i)   
          delete   []   pa[i];
          
          
          现在已经全部修改通过了的   
    
  #include   <iostream>   
  using   namespace   std;   
    
  void   main()   
  {   
  //用new创建一个二维数组,有两种方法,是等价的   
  //一:   
  int   (*p)[10]   =   new   int[5][10];   
  //二:   
  int   **p   =   new   int*   [5];   
  for(int   i=0;i<5;i++)   
  p[i]   =   new   int[10];   
    
  //指针数组的创建,也有两种方法   
  //一:   
  char   **pa   =   new   char*   [4];   
  for   (int   i=0;i<4;i++)   
  {   
  pa[i]   =   new   char[8];   //为每个指针都分配8个char元素空间。   
  }   
  //二:   
  char   *pa[4];//可以不用new创建   
  for   (int   i=0;i<4;i++)   
  {   
  pa[i]   =   new   char[8];   //为每个指针都分配8个char元素空间。   
  }   
    
    
  //delete二维数组   
  //for一:   
  delete   []p;   
  //for二:   
  for(int   i=0;   i<5;   ++i)   
  delete   []p[i];   
  delete   []p;   
    
  //delete指针数组   
  //for一:   
  for(int   i=0;   i<4;   ++i)   
  delete   []pa[i];   
  delete   []pa;   
  //for二:   
  for(int   i=0;   i<4;   ++i)   
  delete   []pa[i];   
  }
声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。