当前位置:首页 > 内存 > 正文

二维数组的动态内存分配

  • 内存
  • 2024-06-06 02:25:56
  • 4834

一、如何实现二维数组的动态内存分配?//动态分配二维空间数组
{
m_iHight=10;//二维数组的高度
m_iWidth=10;//二维数组的宽度
//动态地将二维数组m_ppTable放入内存空间
//类型为int
//m_ppTable指向数组
int**m_ppTable;
m_ppTable=newint*[m_iHight];
//动态分配int*类型的m_iHight内存空间
//分配的空间地址
for(inti=0;im_ppTable[i]=newint[m_iWidth];
//动态分配内存类型int的空间m_iWidth
//它们分配一定顺序的数值空间
}
//没有这样划分的二维空间是连续的
//可以使用m_ppTable[row][col]给两个数组维度赋值
//where0<=row//释放分配的内存空间
{
for(inti=0;idelete[m_iWidth]m_ppTable[i];//释放以行为单位的空间值
delete[m_iHight]m_ppTable;//释放地址空间列表
}


二、二维数组的内存分配问题,高手进。数组自动分配内存
-----------------------
#defineMAX100
charBookName[MAX][30];//内存已分配,可存储MAX行。每行长度不超过29
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
inta[3];
a=(int*)malloc(sizeof(int)*3);/*这里分配空间时出现左值错误。数组已定义。程序中不可能给数组名赋值*/
int*b;
b=(int*)malloc(sizeof(int)*3);/*正确的;b等价于a[3]*/