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

本文介绍了如何在C语言中使用malloc函数动态创建一维和二维数组。一维数组通过malloc申请length个int类型的空间,二维数组则通过两次malloc实现,先分配指向int指针的指针数组,再为每一行分配空间。对于连续性要求不高的二维数组,可以一次性分配所有空间并调整行指针。
摘要由CSDN通过智能技术生成

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;        

       }  

}

此方法可以保证分配的二维数组的内存的连续性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值