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

在linux中,如何使用malloc()函数向操作系统申请堆内存,使用free()函数释放内存。

一、malloc函数原型

#include<stdlib.h>

void *malloc(size_t size);

函数的返回值以及含义如下:

 size:需要分配的内存大小,以字节为单位。

         返回值为 void *类型,如果申请分配内存成功,将返回一个指向该段内存的指针, void *并不是说没有返回值或者返回空指针,而是返回的指针类型未知。

        所以在调用 malloc()时通常需要进行强制类型转换,将 void *指针类型转换成我们希望的类型;如果分配内存失败(譬如系统堆内存不足)将返回 NULL,如果参数 size 为 0,返回值也是 NULL

        malloc()在堆区分配一块指定大小的内存空间,用来存放数据。这块内存空间在函数执行完成后不会被初始化,它们的值是未知的,所以通常需要程序员对 malloc()分配的堆内存进行初始化操作。

二、free()函数原型

#include<stdlib.h>

void free(void *ptr);

函数参数和返回值含义如下:

 ptr: 指向需要被释放的堆内存对应的指针。

返回值: 无返回值。

#include<stdlib.h>
#include<stdio.h>
#include<string.h>#define  MALLOC_MEM_SIZE (1* 1024 *1024)int main(int argc char *argv[])
{char *base = NULL;/*申请堆内存*/base = (char *)malloc(MALLOC_MEM_SIZE);if(NULL = base){printf("malloc error\n");exit(-1);}    /*初始化申请到的堆内存*/memset(base,0x0,MALLOC_MEM_SIZE);/*使用内存*//*释放内存*/free(base);exit(0);    }

运行结果:

http://www.dtcms.com/a/190771.html

相关文章:

  • python打包exe报错:处理文件时错误:Excel xlsx file; not supported
  • Python常见问题
  • 深入理解 Dijkstra 算法:原理、实现与优化
  • openfeign与dubbo调用下载excel实践
  • 如何获得sqoop-1.4.6.2.3.99.0-195.jar
  • 保持视频二维码不变,更新视频的内容
  • GMT之Bash语言使用
  • 濒危仙草的重生叙事:九仙尊米斛花节如何以雅集重构中医药文化IP
  • Qt原型模式实现与应用
  • (4)python开发经验
  • BRPickerView
  • ansible进阶02
  • 鸿蒙OSUniApp 制作动态加载的瀑布流布局#三方框架 #Uniapp
  • 【ios越狱包安装失败?uniapp导出ipa文件如何安装到苹果手机】苹果IOS直接安装IPA文件
  • C++引用编程练习
  • 文件名是 ‪E:\20250512_191204.mp4, EV软件录屏,未保存直接关机损坏, 如何修复?
  • 数据统计分析及可视化
  • 最佳实践PPT | 数据架构设计总体规划方案数据中台架构数据架构图解决方案
  • 如何用Jsoup库提取商品名称和价格?
  • 企业网络新选择:软件定义架构下的MPLS
  • 【PostgreSQL数据分析实战:从数据清洗到可视化全流程】附录-D. 扩展插件列表(PostGIS/PostgREST等)
  • TTS-Web-Vue系列:Vue3实现内嵌iframe文档显示功能
  • idea插件使用
  • 3、ubantu系统docker常用命令
  • Git 彻底清理大文件
  • React学习———React.memo、useMemo和useCallback
  • C PRIMER PLUS——第10节:结构体、共用(同)体/联合体
  • C++函数三剑客:缺省参数·函数重载·引用的高效编程指南
  • Electron入门指南:用前端技术打造桌面应用
  • 更换git位置并在pycharm中重新配置