注册 登录
编程论坛 C++教室

不知怎样用new申请一个二维数组

无名可用 发布于 2010-09-20 11:23, 1342 次点击
Block *map[5];
for(int i=0;i<5;i++)
{
    for(int j=0;j<5;j++)
    {
        ///(map[i]+j)=new Block(i,j);  
    }
}
   上面是我的想法,不知道该将new Block()后得到的地址付给那个变量.
请大家指点一下
2 回复
#2
mghxz2522010-09-20 23:00
动态数组只能是一维的,要用二维的话只能用一维表示二维,具体的如下:

char** map=new char*[10];//定义一个一维的动态指针数组*map
for(int i=0;i<10;++i)
map[i]=new char[10];//使上面的每个指针指向一个一维动态数组

for(int i;i<10;++i)
for(int j=0;j<10;++j)
cout<<map[i][j];//输出动态二维数组


#3
mghxz2522010-09-20 23:06
动态的数组只能是一维的,但可以通过一维来创建二维数组  如下:
char** map=new char*[10];//创建一个空间大小为10的一维动态指针数组
for(int i=0;i<10;++i)
map[i]=new char[10];//每个指针指向一个空间大小为10的一维动态数组

for(int i=0;i<10;++i)
for(int j=0;j<10;++j)
cout<<map[i][j];//输出一个动态的二维数组
1