【急问!在线等】使用 new 分配2维数组的问题!

hawkeyes_yq 2003-07-16 11:21:49
我要用 new 来分配一个2维数组,比如说40*40的。该如何定义?如何使用?
我看了书,可是看不太明白,哪位能够给我解释一下,谢谢了!
...全文
47 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
a_kui 2003-07-16
  • 打赏
  • 举报
回复
sorry,总结错了我,devzhao(疯狂IT) 兄的那个好像有点问题哦
还是应该
double **arr;
arr=new double*[40];
for(int k=0;k<40;k++)
arr[k]=new double[40];
a_kui 2003-07-16
  • 打赏
  • 举报
回复
总结一下
double **arr;
arr=new double*[40];
for(int k=0;k<40;k++)
arr[k]=new double[40];

在vc6下通过

int **arr;
*arr=new int[40];
for(int i=0;i<40;i++)
arr[i]=new int[40];
在.net下通过
由此,大家可以看出2维数组在两个编译器下的内存管理上的不同,学习ing
a_kui 2003-07-16
  • 打赏
  • 举报
回复
double **arr;
arr=new double*[40];
for(int k=0;k<40;k++)
arr[k]=new double[40];
hawkeyes_yq 2003-07-16
  • 打赏
  • 举报
回复
非常感谢各位!尤其是devzhao(疯狂IT)
结贴
magic007 2003-07-16
  • 打赏
  • 举报
回复
举个例子:
#include<iostream>
using namespace std;

int main()
{
const int arr_size=40;
int i,j;
int **ptr=new (int *)[arr_size];
for (i=0;i<arr_size;i++)
ptr[i]=new int[arr_size];
for (i=0;i<arr_size;i++)
for(j=0;j<arr_size;j++)
ptr[i][j]=i*arr_size+j;
for (i=0;i<arr_size;i++)
{
for (j=0;j<arr_size;j++)
cout<<ptr[i][j]<<" ";
cout<<endl;
}
for (i=0;i<arr_size;i++)
delete [] ptr[i];
delete [] ptr;
system("pause");
}
devzhao 2003-07-16
  • 打赏
  • 举报
回复
int **arr;
*arr=new int[40];
for(int i=0;i<40;i++)
arr[i]=new int[40];
六月初六 2003-07-16
  • 打赏
  • 举报
回复
type *p;
p=new(sizeof(type)*40*40);
//用这个寻址p+40*i+j
//i为行坐标
//j为列坐标
a_kui 2003-07-16
  • 打赏
  • 举报
回复
用for循环阿

69,373

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧