标题:【求解释】关于new二位数组的问题
只看楼主
wenxinwukui
Rank: 1
等 级:新手上路
帖 子:22
专家分:6
注 册:2010-11-15
 问题点数:0 回复次数:3 
【求解释】关于new二位数组的问题
如下代码:

        int** a = new int*[3];     // 1
        for(int i = 0; i < 2; i++)  //2
            a[i] = new int[2];

请问这创建的时一个2*3 的数组还是一个3*2的数组?
个人感觉步骤1 是见了一个存放三个整型数组指针的数组,步骤2对每一个指针new一个大小为2的数组。这样看来应该是新建了一个三行两列的数组。但是我运行下面代码的时候出错:
        for (int i = 0; i< 3; i++){
            for(int j = 0; j < 2; j++){
                a[i][j] = 0;
                cout << a[i][j] << " ";
            }
            cout << endl;
        }
如果下面这样写就对:
        for (int i = 0; i< 2; i++){
            for(int j = 0; j < 3; j++){
                a[i][j] = 0;
                cout << a[i][j] << " ";
            }
            cout << endl;
        }
请各位高手分析一下什么原因,谢谢。
搜索更多相关主题的帖子: 新建 
2011-08-18 12:18
baobaoisme
Rank: 7Rank: 7Rank: 7
来 自:AVATAR
等 级:黑侠
帖 子:260
专家分:506
注 册:2010-7-9
得分:0 
我也是觉得是个3*2的数组
楼主, for(int i = 0; i < 3; i++)  //2
            a[i] = new int[2];
改成3,应该就ok了,看着只是小问题,少分配一个数组
2011-08-18 12:55
wenxinwukui
Rank: 1
等 级:新手上路
帖 子:22
专家分:6
注 册:2010-11-15
得分:0 
回复 2楼 baobaoisme
哦,原来是这个写错了,。多谢了
2011-08-18 13:02
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:507
帖 子:8890
专家分:53117
注 册:2011-1-18
得分:0 
这不是二维数组

“二维数组”的每个元素都是个“一维数组”,而非指向“一维数组”的指针
2011-08-18 13:27



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-347843-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.424556 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved