C语言第十八集(动态内存管理)

1.malloc函数可以开辟一块空间,具体搜:

2.malloc函数申请的空间在内存的堆区

而且它只负责帮你申请空间,不负责帮你清理空间

3.free函数可以释放内存

4.free函数释放的是内存中的堆区,具体搜:

5.在free函数调用完后记得把对应的指针设为空指针

6.calloc函数跟malloc函数差不多,但它会为内部的空间赋值0,具体搜:

7.realloc函数可以开辟空间,具体搜

8.realloc函数开辟空间的操作都是在malloc等函数实现开辟好的空间里边运行的

9.realloc函数开辟空间的两种情况搜

10.realloc(NULL,40)与malloc函数一样,因为没得调整空间,那就只能开辟空间

11.malloc,calloc,realloc函数申请的空间,出了作用域是不会主动销毁的

除了使用free函数和程序结束,他们申请的空间都不会主动释放

12.不能对非动态开辟的内存使用free函数

13.不能使用free函数释放一块动态开辟内存的一部分

14.不能对同一块动态开辟内存多次释放

15.动态开辟内存不要忘记释放(否则会导致内存泄漏)

16.对于

int* test()

{

        int* p = (int*)malloc(100);

       if (p == NULL)

        {

                return;

        }

        *p = 10;

        return 0;

}

函数而言,p仍然是局部变量

在调用完函数后,像上述的函数在调用完后,由于p没了,所以malloc函数所申请的那部分空间就没办法释放了,所以就发生了内存泄漏

17.字符串能直接这样打印

18.传值调用和传址调用的一个特殊例子搜

19.对函数

char* ggg()

{

        char p[ ] = { "123456789" };

        return p;

}

这里边的p[ ]里边的内容在出了函数后会自动销毁

20.一定要记得释放动态内存

21.使用野指针   可能   会报错

22.结

23.非法访问的一个特殊案例搜

24.柔性数组具体搜:

25.用了realloc重新分配好内存之后,那么原来的那个空间就被释放掉了

相关推荐

最近更新

  1. TCP协议是安全的吗?

    2023-12-13 19:52:03       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2023-12-13 19:52:03       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2023-12-13 19:52:03       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2023-12-13 19:52:03       18 阅读

热门阅读

  1. PyPDF2库对PDF实现读取的应用

    2023-12-13 19:52:03       41 阅读
  2. Android:FragmentHostCallback

    2023-12-13 19:52:03       44 阅读
  3. 挑战52天学小猪佩奇笔记--day19

    2023-12-13 19:52:03       39 阅读
  4. 低代码-传统开发者的噩梦?

    2023-12-13 19:52:03       29 阅读
  5. python版open3d给点云添加高斯噪声

    2023-12-13 19:52:03       32 阅读
  6. (5)快速搭建k8s集群

    2023-12-13 19:52:03       33 阅读
  7. 算法通关村第十七关 | 白银 | 贪心高频问题

    2023-12-13 19:52:03       47 阅读