★★★怎样给一个二维数组动态分配内存?★★★

silven 2005-01-25 11:32:04
如果在一个程序中不知道一个二维数组需要有多少行,多少列,怎样定义并且为其分配2行2列的内存?
...全文
131 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
silven 2005-01-25
  • 打赏
  • 举报
回复
用C语言怎样实现?
qrlvls 2005-01-25
  • 打赏
  • 举报
回复
agree to pomelowu(羽战士)
shenailin 2005-01-25
  • 打赏
  • 举报
回复
char *p = new char[n*m];
pomelowu 2005-01-25
  • 打赏
  • 举报
回复
二维数组也是连续的,可以用1维数组来分配内存,然后再定位即可。

ps,1楼的代码用不了吧?
pomelowu 2005-01-25
  • 打赏
  • 举报
回复
cout<<"行";
cin>>x;
cout<<"列";
cin>>y;
char *a = new char[x * y];
char *p[y];
for (int i = 0; i < x; i ++)
p[i] = &a[i * y];
fanqing 2005-01-25
  • 打赏
  • 举报
回复
cout<<"行";
cin>>x;
cout<<"列";
cin>>y;
char *a=new char[x][y];
pomelowu 2005-01-25
  • 打赏
  • 举报
回复
>小弟终于明白了,多谢pomelowu(羽战士),可否将MSN或者泡泡或者QQ号留给小弟?

你太客气了~~不过在公司上不了这些~~就在CSDN上给我留言吧
pomelowu 2005-01-25
  • 打赏
  • 举报
回复
汗~~~是我写的问题:
delete应该这样写:
if (p)
{
delete [] p;
p = NULL;
}
if (a)
{
delete [] a;
a = NULL;
}

free应该这样写:
if (p)
{
free(p);
p = NULL;
}
if (a)
{
free (a);
a = NULL;
}
silven 2005-01-25
  • 打赏
  • 举报
回复
小弟终于明白了,多谢pomelowu(羽战士),可否将MSN或者泡泡或者QQ号留给小弟?
silven 2005-01-25
  • 打赏
  • 举报
回复
if (p)
for (i = 0; i < y; i ++)
{
free(p[i]);
p[i] = 0;
}
p = NULL;
if (a)
free(a);
=====================================
我在VC6下运行会出错,怎么回事呀?
pomelowu 2005-01-25
  • 打赏
  • 举报
回复
C语言换成malloc 和 free就是了:
char *a = (char *)malloc(sizeof(char) * x * y);
char **p = (char **)malloc(sizeof(char *) * y);
for (int i = 0; i < x; i ++)
p[i] = a + (i * y);
pomelowu 2005-01-25
  • 打赏
  • 举报
回复
嗯~~还要改改~~~有点小错误:
cout << "行";
cin >> x;
cout << "列";
cin >> y;
char *a = new char[x * y];
char **p = new char*[y];
for (int i = 0; i < x; i ++)
p[i] = a + (i * y);


最后,完了记得要
if (p)
for (i = 0; i < y; i ++)
{
delete [] p[i];
p[i] = 0;
}
p = NULL;
if (a)
delete a;

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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