注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

慵懒的乌龟

——若有,且珍惜~

 
 
 

日志

 
 

利用new定义二维数组,delete删除内存空间  

2011-12-05 22:30:00|  分类: C/C++ |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
//为二维数组开辟空间
  int **p = new int*[num1]; 
 for(int i=0; i <num1; ++i) 
 p[i] = new int[num2];   

 //释放二维数组占用的空间  
for(int m=0;m <num1;m++)  
delete[] p[m]; 
 delete[] p;
注意以下几个等价式:
int   **c; 
c   =   new   int*[3]; 
for(   i=0;i <4;i++) 

c[i]   =   new   int[3]; 
} //c[5][3]
和下面等价用法:
int   **c;
c   =   (int   **)new   int[2];//c   =   (int   **)new   int[2];
和下面等价用法:
int   (*c)[3]=new   int[2][3]; //int**   c=(int**)   new   int[2][3];
再给几个例子:
例子1:
char (*p)[25];  //指定指向特定数组的指针,忽略掉第一维,为什么?自己想
p=new char[19][25];
p[3][9]=20;
delete[] p;

例子2:
char *p; //指定普通指针
p=(char *)new char[19][25]; //强制转换
*(p+9)=20;
delete[] p;

例子3:
const int i=30;
const int j=20;
char (*p)[i];
p=new char[j][i];

例子4:
int main(int argc, char* argv[])
{
    int row,col,k=1;
    cout<<"Please input row and col:"<<endl;
    cin>>row>>col;

    //分配空间
    int **p=new int*[row];//先建立一个指针数组,再用一个for循环开辟对应的指针数组
    for (int i=0;i<row;i++)
    {
        p[i]=new int[col];
    }//空间分配完毕

    for (int m=0;m<row;m++)
    {
        for (int n=0;n<col;n++)
        {
            p[m][n]=k++;
            cout<<setw(4)<<p[m][n]<<" ";
        }
        cout<<endl;
    }
   
    //释放空间
    for (int j=0;j<row;j++)
        delete []p[j];
    delete []p;
    p=0;

    return 0;
}
例子4:

        const int row=4;
const int col=3;

int **VerProject= new int*[row];
for (int j=0;j<row;j++)
{
VerProject[j]=new int[col];
}
for (int i=0;i<row;i++)
for(int j=0;j<col;j++)
VerProject[i][j]=i;
printf("i=%d,j=%d,%d\n\n",i,j,VerProject[i][j]);
}
for (int i=0;i<row;i++)
{
delete []VerProject[i];
}
delete []VerProject;
VerProject=0;
if (VerProject==NULL)
{
cout<<"内存释放完毕!"<<endl;
}
  评论这张
 
阅读(1446)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017