欢迎来到天天文库
浏览记录
ID:59256689
大小:21.00 KB
页数:8页
时间:2020-09-08
《c++与cy语言动态开辟二维数组的多种方法.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、c++与c动态开辟二维数组的方法c++近日写到一个程序,用到了要动态开辟二维数组,一想,自己就会两种。一者:用new在堆上开辟;二者:用vector开辟。技巧没有多少,但是确实是折腾了我半天!首先,大家去网上搜一下,动态开辟二维数组的文章特别多,再加上我这篇就更多了,我本不想写这篇博文的。但看了网上各位“大虾”“大牛”写的,觉得还是有必要写一下!给各位讲清楚点,以防被网上质量残次不齐的文章误导了。 写文章者,都是学习总结之用!为了是自己的快活,也为了别人的参考方便。 那我想在就讲讲我经常用到的
2、两种方法; 一:C++new法 首先贴出我写的一个小小的代码吧!以供大家评论!代码都经本人在VC++6.0上编译运行过,无错!至于有高手再能找出bug,那就给我提出来吧,我也进步,进步!#include#includeusingnamespacestd;voidmain(){ introw,col; int**element=NULL; cin>>row >>col; //动态开辟数组 element=newint*[row]; for(inti=0;i3、w;i++) { element[i]=newint[col]; } //输入数组 cout<>element[i][j]; } } //输出数组 cout<4、 cout<5、 delete[]element; element=NULL;这是销毁开辟的空间的代码!用new在堆上开辟的空间,必须要用delete释放了,不然要出现内存泄露了! 二:vector法学习C++,就不得不学习STL了。用vector开辟二维数组也不失为一个好办法!首先看一段代码!#include#include#includeusingnamespacestd;voidmain(){ introw,col; cout<<"请输入行列值:"; cin>>row >>6、col; vector>test(row,vector(col));//声明一个二维数组,注意这里的空格不能少 //初始化,其实不初始化也是可以的,vector默认是0 for(inti=0;i7、l;j++) { cout<8、alloc函数,先分配第一维的大小,然后再循环分配每一维的大小。示例代码,分配3行4列二维数组:#include #include int main(){ int **a; int i, j; a = (int**)malloc(sizeof(int*)*3);//为二维数组分配3行 for (i = 0; i < 3; i++i){//为每列分配4个大小空间 a[i] = (int*)malloc(siz
3、w;i++) { element[i]=newint[col]; } //输入数组 cout<>element[i][j]; } } //输出数组 cout<4、 cout<5、 delete[]element; element=NULL;这是销毁开辟的空间的代码!用new在堆上开辟的空间,必须要用delete释放了,不然要出现内存泄露了! 二:vector法学习C++,就不得不学习STL了。用vector开辟二维数组也不失为一个好办法!首先看一段代码!#include#include#includeusingnamespacestd;voidmain(){ introw,col; cout<<"请输入行列值:"; cin>>row >>6、col; vector>test(row,vector(col));//声明一个二维数组,注意这里的空格不能少 //初始化,其实不初始化也是可以的,vector默认是0 for(inti=0;i7、l;j++) { cout<8、alloc函数,先分配第一维的大小,然后再循环分配每一维的大小。示例代码,分配3行4列二维数组:#include #include int main(){ int **a; int i, j; a = (int**)malloc(sizeof(int*)*3);//为二维数组分配3行 for (i = 0; i < 3; i++i){//为每列分配4个大小空间 a[i] = (int*)malloc(siz
4、 cout<5、 delete[]element; element=NULL;这是销毁开辟的空间的代码!用new在堆上开辟的空间,必须要用delete释放了,不然要出现内存泄露了! 二:vector法学习C++,就不得不学习STL了。用vector开辟二维数组也不失为一个好办法!首先看一段代码!#include#include#includeusingnamespacestd;voidmain(){ introw,col; cout<<"请输入行列值:"; cin>>row >>6、col; vector>test(row,vector(col));//声明一个二维数组,注意这里的空格不能少 //初始化,其实不初始化也是可以的,vector默认是0 for(inti=0;i7、l;j++) { cout<8、alloc函数,先分配第一维的大小,然后再循环分配每一维的大小。示例代码,分配3行4列二维数组:#include #include int main(){ int **a; int i, j; a = (int**)malloc(sizeof(int*)*3);//为二维数组分配3行 for (i = 0; i < 3; i++i){//为每列分配4个大小空间 a[i] = (int*)malloc(siz
5、 delete[]element; element=NULL;这是销毁开辟的空间的代码!用new在堆上开辟的空间,必须要用delete释放了,不然要出现内存泄露了! 二:vector法学习C++,就不得不学习STL了。用vector开辟二维数组也不失为一个好办法!首先看一段代码!#include#include#includeusingnamespacestd;voidmain(){ introw,col; cout<<"请输入行列值:"; cin>>row >>
6、col; vector>test(row,vector(col));//声明一个二维数组,注意这里的空格不能少 //初始化,其实不初始化也是可以的,vector默认是0 for(inti=0;i7、l;j++) { cout<8、alloc函数,先分配第一维的大小,然后再循环分配每一维的大小。示例代码,分配3行4列二维数组:#include #include int main(){ int **a; int i, j; a = (int**)malloc(sizeof(int*)*3);//为二维数组分配3行 for (i = 0; i < 3; i++i){//为每列分配4个大小空间 a[i] = (int*)malloc(siz
7、l;j++) { cout<8、alloc函数,先分配第一维的大小,然后再循环分配每一维的大小。示例代码,分配3行4列二维数组:#include #include int main(){ int **a; int i, j; a = (int**)malloc(sizeof(int*)*3);//为二维数组分配3行 for (i = 0; i < 3; i++i){//为每列分配4个大小空间 a[i] = (int*)malloc(siz
8、alloc函数,先分配第一维的大小,然后再循环分配每一维的大小。示例代码,分配3行4列二维数组:#include #include int main(){ int **a; int i, j; a = (int**)malloc(sizeof(int*)*3);//为二维数组分配3行 for (i = 0; i < 3; i++i){//为每列分配4个大小空间 a[i] = (int*)malloc(siz
此文档下载收益归作者所有