C++二维指针分配内存空间


C++二维指针分配内存空间

int **p;
    int x;
    p=new int*[5];
    for (int i=0;i<5;i++)
    {
      p[i]=new int[4];
    }
 
  使用时:
 
  for(int i=0;i<5;i++)
    for(int j=0;j<4;j++)
      p[i][j]=i+j;
  for(int i=0;i<5;i++)
    for(int j=0;j<4;j++)
      {
        std::cout<<p[i][j];
        if(j==3)
        std::cout<<std::endl;
      }
 
  释放内存时应该注意释放方法:
 
  for(int i=0;i<5;i++)
 
    delete[] p[i];
 
  delete[] p;
 或者:
      分配:
    tSendCmdContent=(char**)malloc(/*MATRIX_IN_COUNT*/MATRIX_OUT_COUNT*sizeof(char*));     
  for(int j=0;j <MATRIX_OUT_COUNT/*MATRIX_IN_COUNT*/;j++)     
 
  tSendCmdContent[j]=(char*)malloc(MATRIX_CMD_LEN*sizeof(char)); 
    释放:
  for(int j=0;j <MATRIX_OUT_COUNT/*MATRIX_IN_COUNT*/;j++)     
  {     
    free(tSendCmdContent[j]);     
  }     
  free(tSendCmdContent); 

相关内容