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

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

创建时间:2009-01-08 投稿人: 浏览次数:7432

 //用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];  
  }

声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。