[C语言] 数据结构-预备知识动态内存分配
2023-02-18 15:41:27 时间
动态内存分配
静态内存分配数组 int a[5]={1,2,3,4,5}
动态内存分配数组
int len=5;
int *parr=(int *)malloc(sizeof(int) * len);
1.分配了 4*5 =20个字节的内存空间,返回了第一个字节的地址
2.第一个字节的地址无意义,所以强制转成int类型的地址int *
3.parr此时指向第一个字节的地址,相当于a,当成普通数组使用
*parr=4 <===> a[0]=4
parr[1] <===> a[1]
4.释放内存
free(parr) 把parr所代表的动态分配的20个字节内存释放
#include <stdio.h> #include <malloc.h> int main(void){ printf("%s\n","请输入数组长度"); int len; scanf("%d",&len); //动态分配内存 int * parr=(int *)malloc(sizeof(int)*len); int i; for(i=0;i<len;i++){ printf("元素:"); scanf("%d",&parr[i]);//另一种方式,*(parr+i) } for(i=0;i<len;i++){ printf("%d\n",parr[i]);//当成普通数组使用 } //释放内存 free(parr); }
相关文章
- abp(net core)+easyui+efcore实现仓储管理系统——出库管理之二(五十)
- abp(net core)+easyui+efcore实现仓储管理系统——出库管理之一(四十九)
- abp(net core)+easyui+efcore实现仓储管理系统——入库管理之十二(四十八)
- abp(net core)+easyui+efcore实现仓储管理系统——入库管理之十一(四十七)
- abp(net core)+easyui+efcore实现仓储管理系统——入库管理之十(四十六)
- abp(net core)+easyui+efcore实现仓储管理系统——入库管理之九(四十五)
- abp(net core)+easyui+efcore实现仓储管理系统——入库管理之八(四十四)
- abp(net core)+easyui+efcore实现仓储管理系统——入库管理之七(四十三)
- abp(net core)+easyui+efcore实现仓储管理系统——入库管理之六(四十二)
- abp(net core)+easyui+efcore实现仓储管理系统——入库管理之五(四十一)
- abp(net core)+easyui+efcore实现仓储管理系统——入库管理之四(四十)
- abp(net core)+easyui+efcore实现仓储管理系统——入库管理之三存储过程(三十九)
- abp(net core)+easyui+efcore实现仓储管理系统——入库管理之二(三十八)
- abp(net core)+easyui+efcore实现仓储管理系统——入库管理之一(三十七)
- 《ASP.NET Core应用开发入门教程》与《ASP.NET Core 应用开发项目实战》正式出版
- abp(net core)+easyui+efcore实现仓储管理系统——ABP WebAPI与EasyUI结合增删改查之十(三十六)
- abp(net core)+easyui+efcore实现仓储管理系统——ABP WebAPI与EasyUI结合增删改查之九(三十五)
- abp(net core)+easyui+efcore实现仓储管理系统——ABP WebAPI与EasyUI结合增删改查之八(三十四)
- abp(net core)+easyui+efcore实现仓储管理系统——ABP WebAPI与EasyUI结合增删改查之七(三十三)
- abp(net core)+easyui+efcore实现仓储管理系统——ABP WebAPI与EasyUI结合增删改查之六(三十二)