您的位置:首页 > 编程语言 > C语言/C++

C语言实现动态一维/二维数组的申请

2014-04-02 17:43 507 查看
int *Array Creat1DArray( int length )

{

      int *Array;

      Array = (int*)malloc( sizeof(int)*length );

     return Array;

}

具体实现步骤:调用"stdlib.h"里包含的malloc函数,申请到lengh*sizeof(int)个字节的内存,然后将malloc返回的void*型指针强制转化为int*型,由此实现动态一维数组的申请。

 

int **Create2DArray( int m, int n)

{

      int i;

      int **Array;

      Array = (int**)malloc( (sizeof(int *) * n );//分配指针数组

      for( i = 0;i < m;i++ )

            {

                   Array[i] = (int*)malloc( sizeof(int)*n );

            }

      return Array;

}

这种方法的分配的内存不能保证连续性。

 

int **Create2DArray( int m , int n )

{

      int i;

      Array = (int**)malloc( sizeof(int)*m );//分配指针数组

      Array[0] = (int *)malloc( sizeof(int)*m*n );//一次性分配所有空间 

      for( i = 1;i<m;i++ )

      {

          Array[i] = Array[i-1]+n;        

       }  

}

此方法可以保证分配的二维数组的内存的连续性。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: