请问在vc中如何实现动态的二维数组?

lanlanxyz 2002-11-21 07:57:14
请问在vc中如何实现动态的二维数组?
我是这样做的:
#include <iostream>
void main()
{
int one,two;
cin>>one>>two;

int **myarray=new int *[one];
*myarray=new int[two];

for (int i=0;i<one;i++)
{
for (int j=0;j<two;j++)
{
a[i][j]=i*j;
cout<<a[i][j]<<"\n";
}
}
程序编译可以通过,但执行时,发生引用内存错误。
请高手指点迷津,我错在那里?
...全文
36 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
superzjx2000 2002-11-21
  • 打赏
  • 举报
回复
不可以已二级指针实现 只能是先动态分配 一维数组 然后以二维的方式直接用就行了
point_to 2002-11-21
  • 打赏
  • 举报
回复
int **array;
int length1,length2;
length1=4;length2=6;
array=new int*[length1];
for(int i=0;i<length1;i++)
{
*(array+i)=new int[length2];
}
for (i=0;i<length1;i++)
{
for(int j=0;j<length2;j++)
{
array[i][j]=i+j;
printf("array[%d][%d]=%d\n",i,j,array[i][j]);

}
}

for( i=0;i<length1;i++)
delete[] array[i];
delete[] array;



ok!
lanlanxyz 2002-11-21
  • 打赏
  • 举报
回复
数组的第二级结构如何赋值,请以例子明示
我初学vc,请多指教。
lanlanxyz 2002-11-21
  • 打赏
  • 举报
回复
可是,这样改了以后仍然执行出错。
说引用的内存不能“written”

#include <iostream.h>
void main()
{
int one,two;
cin>>one>>two;

int **myarray=new int *[one];
*myarray=new int[two];

for (int i=0;i<one;i++)
{
for (int j=0;j<two;j++)
{
myarray[i][j]=i*j;
cout<<myarray[i][j]<<"\n";
}
}
delete myarray;
myarray=0;
}


qhgary 2002-11-21
  • 打赏
  • 举报
回复
哪来的a?
不是myarray么?
alphapaopao 2002-11-21
  • 打赏
  • 举报
回复
当然有问题,数组的第二级结构没有赋值
jian 2002-11-21
  • 打赏
  • 举报
回复
没有内存的释放

69,382

社区成员

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

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