| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 390 人关注过本帖
标题:【求解释】关于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
等 级:版主
威 望:528
帖 子:9031
专家分:54061
注 册:2011-1-18
收藏
得分:0 
这不是二维数组

“二维数组”的每个元素都是个“一维数组”,而非指向“一维数组”的指针
2011-08-18 13:27
快速回复:【求解释】关于new二位数组的问题
数据加载中...
 
   



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

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