c++ 用new创建二维数组~创建指针数组【转】

#include <iostream>
using namespace std;

void main()
{
//用new创建一个二维数组,有两种方法,是等价的
//一:
int (*p)[10] = new int[5][10];
//二:
int **p = new int* [5];
for(int i=0;i <5;i++)
p[i] = new int[10];

//指针数组的创建,也有两种方法
//一:
char **pa = new char* [4];
for (int i=0;i <4;i++)
{
pa[i] = new char[8]; //为每个指针都分配8个char元素空间。
}
//二:
char *pa[4];//可以不用new创建
for (int i=0;i <4;i++)
{
pa[i] = new char[8]; //为每个指针都分配8个char元素空间。
}

//delete二维数组
//for一:
delete []p;
//for二:
for(int i=0; i <5; ++i)
delete []p[i];
delete []p;

//delete指针数组
//for一:
for(int i=0; i <4; ++i)
delete []pa[i];
delete []pa;
//for二:
for(int i=0; i <4; ++i)
delete []pa[i];
}

from here

时间: 2024-10-19 16:15:13

c++ 用new创建二维数组~创建指针数组【转】的相关文章

动态创建二维vector数组+指针与引用的区别

二维vectorvector<vector <int> > ivec(m ,vector<int>(n));    //m*n的二维vector 动态创建m*n的二维vector方法一:vector<vector <int> > ivec;ivec.resize(m);for(int i=0;i<m;i++) ivec[i].resize(n); 方法二:vector<vector <int> > ivec;ivec

C语言 动态创建二维数组

/*C语言 如何动态创建二维数组 转化为一维数组申请数组,创建和释放都比较简单 */ #include <stdlib.h> #include <stdio.h> #include <malloc.h> #define RANK 10 #define COLUMN 7 int main() { int i,j; int (*p)[COLUMN]; //动态生成二维数组,指定列数为COLUMN,如果想改,自己该里面 //的参数,如果想定义n行2列就为: p=(int (*

动态创建二维数组

vector创建二维数组 初始化二维数组 vector<vector <int> > ivec(n ,vector<int>(m)); //n*m的二维vector vector<vector <int> > ivec(n , vector<int>(m, 0)); //n*m的二维vector,所有元素为0 动态创建m*n的二维 方法一: vector<vector <int> > ivec; ivec.re

【C语言】动态创建二维数组

//动态创建二维数组 #include <stdio.h> #include <stdlib.h> #include <malloc.h> int main() { int i,j; int n,m; //以n行5列为例 int (*p)[5]; printf("请输入行数:"); scanf("%d",&n); p=(int(*)[5])malloc(5*n*sizeof(int)); for(i=0;i<n;i+

c++ 动态创建二维数组

为了做一个东西需要用到动态创建二维数组,特此记录. #include <iostream> #include "time.h" using namespace std; int main() { srand((unsigned)time(NULL)); int x_num; int y_num; cout<<"please input x_num:"; cin>>x_num; cout<<"please in

&lt;细节&gt;动态创建二维数组

今天在做一个关于数组相似度的题目,需要动态创建二维数组,刚开始想用常规的int a[ ][ ]建立,但很快就发现行不通,这种常规数组必须在编译前指定数组的维数,而这个题目在的维数必须在运行中计算得出,于是想到采用new来建立动态二维数组,这个方法行得通,但是很麻烦,也不太利于理解,后面决定采用vector< vector< int > >方法来创建,简单了不少,下面对两种方法都进行一下总结. 1.使用vector创建二维数组 #include <iostream> #i

模板:使用new delete 创建二维数组

1 int **arr_matrix = new int*[n]; 2 for(i = 0; i < n; ++i) arr_matrix[i] = new int[n]; 3 //内容 4 for(i = 0; i < n; ++i) delete [] arr_matrix[i]; 5 delete [] arr_matrix; 模板:使用new delete 创建二维数组

iOS原生CIFilter创建二维码

iOS原生CIFilter创建二维码 2016-05-31 未来C 关于二维码生成,网上也是有很多,很早以前的第三方库大多数都是通过C++写,也是有的如zxing,也是挺好用,这里介绍的是通过CIFilter创建二维码.   创建二维码非常简单,只要传入简单的字符串就好了 - (CIImage *)createQRForString:(NSString *)qrString { NSData *stringData = [qrString dataUsingEncoding:NSUTF8Stri

ios创建二维码

#import "LCTwoCodeImage.h" @implementation LCTwoCodeImage +(UIImage *) GotoCreatMyTwoCode :(NSString *) string { //通过传入的字符串来创建二维码初始图层渲染 CIImage * firstImage = [self creatCIImageFromString:string]; //通过 CIImage 来生成二维码 UIImage * qrCode = [self cre

二维码创建及扫描

今天为大家介绍了一种二维码的创建策略,在测试中发现生成的二维码属于通讯二维码,通过微信.UC浏览器扫描,均为取得成功,通过小米手机自带的二维码扫描,可以正确解析二维码中的信息,并且可以一键导入到通讯录,不太清楚这是什么原因,对于制作二维码电子名片非常方便,大家可以了解一下.本篇我将结合ZXing为大家介绍如何制作二维码,和扫描二维码并进行解析. ZXing是一个开源Java类库用于解析多种格式的1D/2D条形码.目标是能够对QR编码.Data Matrix.UPC的1D条形码进行解码. 其提供了