利用new定义二维数组,delete删除…
2013-06-10 12:29
253 查看
//为二维数组开辟空间
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]
=k++;cout<<setw(4)<<p[m]
<<"
";}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删除内存空间
- c++ 的用 new 和delete 进行二维数组动态内存的创建和删除
- c++ 利用new动态的定义二维数组
- [C] 利用C实践OOP,以及new,delete
- malloc/free和new/delete的主要区别以及c与c++关于结构体定义使用的区别
- new出的对象数组必须要用delete[]删除,而普通数组delete和delete[]都一样
- 为何new出的对象数组必须要用delete[]删除,而普通数组delete和delete[]都一样
- C++ 二维数组 New 和 delete
- 利用logminer,恢复delete误删除操作的数据
- 如何用new动态申请二维数组,然后又如何用delete释放
- 为何new出的对象数组必须要用delete[]删除,而普通数组delete和delete[]都一样-------_CrtMemBlockHeader
- 如何new与delete各种二维数组
- 为何new出的对象数组必须要用delete[]删除,而普通数组delete和delete[]都一样-------_CrtMemBlockHeader
- c++ 浅拷贝和深拷贝 指针和引用的区别 malloc(free)和new(delete)的区别 重载重写重定义
- delete运算符(删除对以前定义的对象的属性和方法的引用)
- 定义数组为有序数组模型,并利用二分法进行查找,删除特定值(缺点:只能删除一个值,若有相同的值,则删除第一个)
- [MySQL] 利用update&delete来修改/删除数据记录
- 8章3节分配删除指针new和delete
- 二维数组的定义与删除
- 为何new出的对象数组必须要用delete[]删除,而普通数组delete和delete[]都一样