动态内存的分配与释放

#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 ;
  }
上一篇:尚硅谷vue - 6 列表渲染


下一篇:左神_基础提升班_03_kmp和manacher算法