VC++6.0中二维数组存储空间的分配与释放

时间:2024-10-12 09:39:55

用外狒芙梨VC++6.0编写程序,经常用到二维数组,所以我们有必要学会二维数组存储空间的分配与释放,尤其是在不确定分配个数的时候,虽然网上有相关的介绍,但网上的方法有些混乱,所以我就以我对VC++6.0使用的经验来介绍一下二维数组存储空间的分配与释放。

本经验选取int数据类型为例。

1、当知道二维数组元素的个数,即知道要建立几行几列的二维数组的情况较为简单,例如建立一个3行4列的二维数组就可以用如下代码。

int a[3][4];

使用这种方法在最后不必要加另外的代码释放内存,二维数组所在的函数运行结束时,系统会自动释放相应的内存,

2、new来创建二维数组。当我们不知道要建立几行几列的二维数组时,如建立一个m行n列的二维数组(m和n是未知数),用”int a[m][n];”是错误的,因为在这个语句中,m、n必须是正整常量表达式,m和n必须是常量。但如果使用new来创建二维数组就不受常量的限制了,new来创建二维数组过程是先创建行内存,然后在每一个行内存再划分列内存,我们可以使用如下代码。

a= new int*[m];

for(int i=0; i<n; i++)

a[i]=new int[n];

当然,使用new创建二维数组这种方法,在最后必须要用delete语句来释放内存,过程是先释放每一行的列内存,最后才释放行内存。释放内存的代码如下。

for(int i=0; i<n; i++)

delete G.arcs[i];

delete []G.arcs;

当然可以用new来3行4列的二维数组了。

本方法是在小编上课时学到的,仅供参考,在实际应用中应结合其他代码加以灵活使用。

© 手抄报圈