• 内存管理(malloc和free的用法)


    内存管理

      1.堆和栈的区别:

        1》栈的特征

          1)、执行的速度相对较

          2)、空间较

          3)、生存期由系统决定

          4)、作用域较

          5)、有名空间,可以通过变量名或者数据名访问

        2》堆的特征

          1)、执行的速度相对较

          2)、空间较

          3)、生存期由“自己”决定,malloc申请,free释放;

          4)、作用域很大(整个程序都可以访问);

          5)、无名空间,只能通过指针使用

      

      2.如何对堆空间申请

        1》申请空间

          #include <stdlib.h>

          void *malloc(size_t size);

          功能:在堆中申请空间

          size:要申请的空间的大小(字节数)      

          返回值类型:void * 该类型表明malloc返回的地址空间中的数据类型是不确定,必须经过强制类型转换才可以使用。

          返回值:成功时,返回malloc申请的空间的起始地址,失败时,返回NULL。

          特点:----》malloc申请的空间为连续空间;

             ----》malloc申请的是没有初始化的空间;

          

          void *calloc(size_t nmemb, size_t size);

          特点:----》申请的空间是连续的;

             ----》申请的是已初始化的空间;

          void *realloc(void *ptr, size_t size);

        

         2》释放空间

            #include <stdlib.h>

            void free(void *ptr);

            参数ptr:

                1)不能传NULL;

                2)不能给ptr传申请的空间的一部分,例如:

                3)不能释放已经被释放的空间;

                4)不能使用已经被释放的空间;

  • 相关阅读:
    Run command in YMAL build pipeline or Release Pipeline
    Create Pipeline for Azure Apps
    Deploy Azure App Service with VS Code
    多线程总结笔记
    @Param注解
    Mac Idea2018.1破解
    空指针异常Caused by: java.lang.NullPointerException: null
    java集合面试题
    在IntelliJ IDEA中使用git
    分支管理
  • 原文地址:https://www.cnblogs.com/feige1314/p/7216770.html
Copyright © 2020-2023  润新知