北京市中心血站:C++中动态定义二维数组问题

来源:百度文库 编辑:查人人中国名人网 时间:2024/04/28 13:14:08
如果我定义一个动态二维数组用如下方法:
int x,y,**p;
cin>>x>>y;
p=new int*[x];
for(int i=0;i<x;i++)
p[i]=new int[x];
那么我想定义一个N行2列的二维数组,应该要怎么做呢?
请高手指点,谢谢了先!

补充一下楼上的说法,有点麻烦哦
你可以定义如下:
int (*p)[2] = new int [n][2];

这样代码简单

如果用for循环的话,编译后机器代码会很长

而且频繁使用new 会产生堆空间碎片哦

就按你这个方法啊,最后一句改成p[i]=new int[2];不就行了么

int n,**p;
cin>>n;
p=new int*[n];
for(int i=0;i<n;i++)
p[i]=new int[2];

for(int i=0;i<x;i++)
p[i]=new int;