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

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;        

       }  

}

此方法可以保证分配的二维数组的内存的连续性。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值