动态内存的分配与释放
作者:互联网
#include <stdio.h> //#为预处理命令
#include <malloc.h>//内存分配
int main(void)
{
//静态分配内存(数组)
int a[5] = {2,3,5,6,9};
int len = 0;
//len 为一维数组的长度,可以根据需求动态分配长度
printf("请输入你需要分配的数组长度");
scanf("%d",&len);//len =5
//mallloc分配内存的函数,返回第一个字节的地址,但是默认返回的是一个32位(4个字节)的地址,没有实际的意义,必须强制转化为指定的指针类型才有意义
//(int*)表示强制转化为int类型的指针,那么返回的地址指向的就是第一个元素的地址,那么第二个元素的地址就是第一个元素 后面的那一位
int* pArr = (int*) malloc(sizeof(int)*len)
*pArr = 2;//类似于a[0] = 2,因为数组名就是指向了第一个元素的地址,跟pArr一样
pArr[1] =3;//类似于a[1] = 3;
free(pArr);//把pArr所代表的动态分配的20个字节的内存释放
return 0 ;
}
标签:释放,字节,int,元素,len,地址,pArr,动态内存,分配 来源: https://www.cnblogs.com/doubleconquer/p/15381316.html