[C语言] 数据结构-预备知识动态内存分配
动态内存分配
静态内存分配数组 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); }
十年开发经验程序员,离职全心创业中,历时三年开发出的产品《唯一客服系统》
一款基于Golang+Vue开发的在线客服系统,软件著作权编号:2021SR1462600。一套可私有化部署的网站在线客服系统,编译后的二进制文件可直接使用无需搭开发环境,下载zip解压即可,仅依赖MySQL数据库,是一个开箱即用的全渠道在线客服系统,致力于帮助广大开发者/公司快速部署整合私有化客服功能。
开源地址:唯一客服(开源学习版)
官网地址:唯一客服官网