news 2026/4/17 3:54:25

动态的内存管理

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
动态的内存管理

1.为什么要动态分配内存

有的时候我们需要的空间大小只有在程序运行的时候才知道,这时候之前数组编译开辟空间的方式就不能满足了

C语言引入了动态内存开辟,让程序员资金就可以申请和释放空间,这样就比较灵活了

2.malloc和free

2.1 malloc

C语言提供了一个动态内存开辟的函数:

void* malloc(size_t size);

这个函数像内存申请了一快连续可用的空间,并返回这块空间的指针

  • 如果开辟成功,则返回指向这块空间的指针
  • 如果开辟失败,则返回一个NULL指针,因此malloc的返回值必须要做一个检查
  • 返回类型是void*,所以返回类型需要自己决定
  • 如果参数size为0,malloc的行为标准是未定义的,取决于编译器
2.2 free

C语言提供了另外一个函数free,专门是用来做动态内存的释放和回收的,函数原理如下:

void free(void *ptr);

free是用来释放动态开辟的内存。

  • 如果参数ptr指向的空间不是动态开辟的,那free的行为是未定义的
  • 如果参数ptr是NULL指针,则函数什么事都不用做

malloc和free都声明在stdlib.h头文件中

举个例子:

#include<stdio.h> #include<stdio.h> int main(){ int num=0; scanf("%d ",%&num); int arr[num]={0}; int *ptr=NULL; ptr=(int*)malloc(sizeof(int)*num); if(NULL!=ptr){ int i=0; for(i=0;i<num;i++){ } } }
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/17 3:53:45

STM32F103C8T6最小系统板+ESP-01S模块联网实战:从CubeMX配置到MQTT数据上报

STM32F103C8T6与ESP-01S物联网开发实战&#xff1a;从硬件搭建到MQTT云端通信 在创客和嵌入式开发领域&#xff0c;STM32F103C8T6凭借其出色的性价比和丰富的资源成为入门首选&#xff0c;而ESP-01S WiFi模块则以极低的成本实现了物联网设备的无线连接能力。本文将带你完成一个…

作者头像 李华
网站建设 2026/4/17 3:52:10

快递查询-物流查询-快递物流查询接口介绍

目前&#xff0c;电商、货运等行业都需要快递查询功能&#xff0c;对运单号的物流轨迹进行跟踪。 通过快递查询接口&#xff0c;可以实时查询物流轨迹。支持顺丰、京东、EMS、申通、圆通、宅急送、韵达、中通、百世、天天、四通一达等1500物流公司&#xff0c;与物流公司官网同…

作者头像 李华
网站建设 2026/4/17 3:46:16

程序包javax.validation.constraints不存在

在现代Java企业级应用开发中&#xff0c;数据校验是保障系统健壮性与安全性的第一道防线。无论是Web API的请求参数、数据库实体的持久化字段&#xff0c;还是微服务间的消息传递&#xff0c;都离不开对数据合法性的严格审查。javax.validation.constraints&#xff08;及其继任…

作者头像 李华
网站建设 2026/4/17 3:43:12

虚幻引擎UE本地化实战:从UMG到资产的全流程多语言方案

1. 为什么需要完整的UE本地化方案&#xff1f; 当你开发的游戏需要面向全球市场发行时&#xff0c;多语言支持就成为了必备功能。想象一下&#xff0c;一个日本玩家打开你的游戏却看到满屏英文&#xff0c;或者德国玩家遇到全是法语的界面&#xff0c;这种体验有多糟糕。我在参…

作者头像 李华
网站建设 2026/4/17 3:41:13

微服务 第二天

Nacos统一配置管理实操步骤配置获取的步骤微服务获取nacos中的配置信息测试是否操作成功总结配置自动刷新配置热更新方式一&#xff1a;&#xff08;属性注解&#xff09;方式二&#xff1a;&#xff08;配置类&#xff09; 推荐总结

作者头像 李华
网站建设 2026/4/17 3:40:14

别再手动升级了!手把手教你用STM32 IAP实现产品远程固件更新(附代码)

STM32 IAP实战&#xff1a;构建企业级远程固件更新系统 当你的智能家居网关出货量突破10万台时&#xff0c;凌晨3点的客服电话突然响起——客户抱怨设备无法连接新上线的云服务。传统解决方案需要召回设备或派遣技术人员&#xff0c;而具备IAP能力的设备只需推送一个OTA更新包。…

作者头像 李华