利用new定义二维数组,delete删除…
来源:互联网 发布:程序员能做到多少岁 编辑:程序博客网 时间:2024/06/01 07:59
//为二维数组开辟空间
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;
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];
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 andcol:"<<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;
}
{
int row,col,k=1;
cout<<"Please input row andcol:"<<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;
}
- 利用new定义二维数组,delete删除…
- 利用new定义二维数组,delete删除内存空间
- 二维数组与new/delete
- 如何new与delete各种二维数组
- 模板:使用new delete 创建二维数组
- 二维数组的new 和 delete
- 如何new与delete各种二维数组
- 如何new与delete各种二维数组
- 使用new和delete创建二维数组
- c++ 的用 new 和delete 进行二维数组动态内存的创建和删除
- new/delete多维数组/malloc分配动态二维数组
- new 二维数组的动态分配和删除
- new和delete以及malloc和free 二维数组
- 二维数组的动态分配(new)、初始化(memset)和撤销(delete)
- new delete 实现动态分配和释放二维数组
- 二维数组的使用(new,delete,初始化,输出)
- 二维数组的定义与删除
- 用new开辟二维数组空间,用delete释放由new产生的二维数组数组空间
- POJ 2017
- POJ 2070
- POJ 1931
- CSharpThinking
- POJ 1976
- 利用new定义二维数组,delete删除…
- POJ 2101
- POJ 2105
- POJ 2109
- POJ 2116
- POJ 2136
- POJ 2160 BOX
- POJ 2190 ISBN
- HDU 4278