C++中怎样动态生成一个指针数组?

int**p=newint*[n]对吗?... int**p=new int*[n]对吗? 展开
 我来答
爱问西瓜爱答树
2020-08-21 · TA获得超过1760个赞
知道小有建树答主
回答量:890
采纳率:50%
帮助的人:281万
展开全部

可以。

int *p=new int[X*Y];//用了二级指针,是想做二维数组么
int **a=new int* [X];//声明一个以一维数组为元素的一维数组
for(int n=0;n<X;n++)//初始化一维数组里面的一维数组
    *a=new int[Y];
追问
看了书上的一句话,想实现一下,结果不成功.书上是这样说的,还有一种方法可以降低各种排序算法用于交换记录所费的时间,尤其是当记录很大的时候;就是使数组中的每个元素存储指向该元素记录的指针而不是记录本身.
然后,我就想动态生成一个指针数组将另一个数组的每一个元素的地址赋给对应的指针数组.
追答
可以这样做,实际上是二位数组(即上述第二种方法)。我的感觉是如果是可以用一维数组就用一维。用指针加偏移量寻址去实现二维数组的结构也行(第一种)。
曹晓山11
2015-08-01 · 知道合伙人互联网行家
曹晓山11
知道合伙人互联网行家
采纳数:3033 获赞数:52064
毕业南阳理工学院计算机科学与技术专业,本科学位。互联网行业从业3年工作经验,读过编程类相关书籍多本。

向TA提问 私信TA
展开全部

C++动态创建二维数组,二维数组指针代码如下:

int **result; //定义一个二维指针数组
int row = 4;
int col = 5;
result = new int*[row];
for (int i=0; i<row; i++)
{
    result[i] = new int[col];
}

for (int i=0; i<row; i++)
{
    for (int j=0; j<col; j++)
    {
        result[i][j] = 4;   //给数组赋值
    }
}
// 下面是释放空间,初始化二维数组
for (int i=0; i<row; i++)
{
    delete[] result[i];
}
delete[] result;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友d580670
2013-09-17 · TA获得超过1983个赞
知道大有可为答主
回答量:2054
采纳率:82%
帮助的人:675万
展开全部
可以
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式