当前位置 博文首页 > CW_qian的博客:8月23日笔记C语言基础(补5)内存管理2

    CW_qian的博客:8月23日笔记C语言基础(补5)内存管理2

    作者:[db:作者] 时间:2021-08-25 21:42

    内存管理:
    ?? ?
    ????????变量的生命周期:
    ?????????? ?1.自动存储期
    ?????????? ?2.静态存储期
    ?????????? ?3.自定义存储期


    ? ? 1.自动存储期:
    ?? ??? ?在栈空间分配变量,系统自动分配空间,内存大小为8M
    ?? ??? ?1.自动变量
    ?? ??? ??? ?auto a1 = 3;
    ?? ??? ??? ?printf("%d\n",a1);
    ?? ??? ?
    ?? ??? ?2.局部变量
    ?? ??? ?demo:

    ?? ??? ??? ?#include <stdio.h>
    ?? ??? ??? ?
    ?? ??? ??? ?const int a = 10; // 只读数据段,全局变量
    ?? ??? ??? ?int a; // 未初始化的静态数据段,全局变量
    ?? ??? ??? ?int b = 10; // 已初始化的静态数据段,全局变量
    ?? ??? ??? ?
    ?? ??? ??? ?void f(int x,int y) // 自动存储期,栈
    ?? ??? ??? ?{
    ?? ??? ??? ??? ?int a = x;
    ?? ??? ??? ??? ?int b = 1;
    ?? ??? ??? ??? ?char *p;
    ?? ??? ??? ?}
    ?? ??? ??? ?
    ?? ??? ??? ?int main()
    ?? ??? ??? ?{
    ?? ??? ??? ??? ?int a,int b; // 自动存储期,栈空间,局部变量
    ?? ??? ??? ??? ?static int c; // 存放在静态数据段
    ?? ??? ??? ??? ?static int d = 10;// 存放在静态数据段
    ?? ??? ??? ??? ?char *p; // 栈空间
    ?? ??? ??? ??? ?f(a,b);
    ?? ??? ??? ?}


    ? ? 自定义存储
    ?? ??? ?作用是开发者手动分配空间,手动释放空间,内存大小由实际物理内存而定
    ?? ?
    ?? ??? ?一般通过malloc,calloc,realloc来分配空间



    cs