当前位置: 首页 > 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);    }

运行结果:

相关文章:

  • 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
  • 特朗普访问卡塔尔,两国签署多项合作协议
  • 外企聊营商|特雷通集团:税务服务“及时雨”
  • 王毅谈中拉论坛十年成果
  • 讲一个香港儿童的故事,《劏房的天空》获“周庄杯”特等奖
  • 福建宁德市长张永宁拟任设区市党委正职,曾获评全国优秀县委书记
  • 明查|印度空军“又有一架战机被巴基斯坦击落,飞行员被俘”?