当前位置: 首页 > news >正文

数据结构 / 内存的动态申请和释放

1.内存的动态申请 malloc

  • malloc 的头文件: #include <stdlib.h>
  • 格式: void *malloc(size_t size);
  • 参数:
    • size_t size: 申请堆区内存大小, 单位是字节;
    • size_t: 是数据类型, 是 unsigned long的宏定义的别名;
  • 返回值:
    • void *: 通用类型指针,使用时需要强转为具体的类型
  • 使用举例:
    • 单个变量内存分配:
      • int *p=(int *)malloca(sizeof(int));

    • 数组变量内存分配:
      • int arr[n];
        int *p=arr;
        int *p=(int *)malloc(sizeof(int)*n)

2内存的动态释放 free

  • malloc 的头文件: #include <stdlib.h>
  • 格式: void free(void *ptr);
  • 参数:
    • void *ptr: 释放内存的变量指针;
  • 返回值: 
  • 使用举例:
    • int *p=(int *)malloc(sizeof(int));
      free(p); // 堆区内存释放后, p 的指针指向还是原来的地址  
      p=NULL;  //p必须赋值NULL来防止野指针

http://www.lryc.cn/news/246474.html

相关文章:

  • Android手电筒、闪光灯、torch、flash
  • C语言--每日选择题--Day26
  • [ACTF2020 新生赛]BackupFile
  • WPF面试题:WPF绘图技术介绍
  • 三、Lua变量
  • C#每天复习一个重要小知识day4:枚举的概念/申明/使用
  • C++:对象模型和this指针
  • 碳酸氢锂/硫酸锂溶液纯化除钙镁解决方案
  • 消失的数字,旋转数组(leetcode 一题多解)
  • 肠道菌群16s检测粪便采样工具包 粪便采样套装
  • 实现领域驱动设计-07-领域服务
  • 井盖位移传感器厂家批发,守护井盖安全
  • python命令行交互 引导用户选择宠物
  • Leetcode—167.两数之和 II - 输入有序数组【中等】
  • MybatisPlus改造逻辑删除有多方便
  • 希尔伯特变换-matlab仿真
  • python字典的基本操作详解
  • [ CSS ] 内容超出容器后 以...省略
  • Java远程连接本地开源分布式搜索引擎ElasticSearch
  • 递归回溯剪枝-子集
  • VC++、MFC中操作excel时,Rang和Rangs的区别是什么?
  • 使用Rust开发小游戏
  • 笔记二十一、使用路由search进行传递参数
  • python多线程和多进程
  • VMware虚拟机网络配置详解
  • VUE语法--img图片不显示/img的src动态赋值图片显示
  • springboot+vue智能企业设备管理系统05k50
  • C++中的new、operator new与placement new
  • ElasticSearch之cat anomaly detectors API
  • Luminar Neo1.16.0(ai智能图像处理)