系统相关
首页 > 系统相关> > 动态内存的分配与释放

动态内存的分配与释放

作者:互联网

#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