内存管理_C语言快速入门与计算机二级备考

  • 在实现可变数组、实现链表之前,先学会对内存进行管理:为要存放的数据申请内存空间

内存的动态申请

  • 例如:想实现在输入数据时,先告知输入个数,然后再输入,记录每个数据

    这就需要申请一块内存用以存放数据

申请内存

  • 需要头文件#include<stdlib.h>

  • int *a=(int*)malloc(n*sizeof(int));

    这样的语句为*a指向的变量分配了n个int大小的空间

    malloc返回指针类型为void*,需进行对其进行强制指针类型转换得到自己需要的类型(int*)

申请失败返回空指针

  • 在使用malloc之后,若内存的空间不够导致申请失败,malloc将返回一个NULL指针

  • 因此要在申请内存之后检测申请是否成功

    int *p =(int*)malloc(10);
    if(p)//当p不为NULL时,才对其进行操作
    {
    	*p=……
    	free(p);
    }
    

内存的释放

  • 在使用完成后,要将所借的空间释放

    free(a)

    注意必须释放原来的指针,如果进行了a++等操作使a不再指向原来分配的空间,就不能free(a)

posted on   无术师  阅读(2)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了

统计

点击右上角即可分享
微信分享提示