在使用JSON过程中遇到的一个空间释放问题

在对完成的模块进行空间访问检查中发现了这个问题,这刚开始接触JSON的使用,也不知道他的内部实现,因此该问题找了好久,终于发现是每个节点创建都会自动开辟空间,因此造成空间未成功释放的错误。

JSON未成功替换节点空间释放问题

cJSON_ReplaceItemInObject(ties,"time", CJSON_CreateString(curtime));

在上述节点替换函数中,若ties节点内没有time节点,则会替换失败,新创建的CJSON_CreateString(curtime)节点不会加入到大节点上,因此递归释放根节点时,新创建的该节点不会被释放。

因此未成功挂载到根上的节点需要单独释放空间。

大家在项目中一定要养成空间随开随关的习惯啊

相关推荐
琥珀色糖11 分钟前
Linux GDB调试
linux·运维·服务器·gdb·调试
weixin_3077791337 分钟前
PHP 大文件上传:内存占用、超时与最佳实践
linux·服务器·开发语言·nginx·php
闲云野鹤在人间42 分钟前
项目实战:LNMP-电商平台-ECshop
linux·运维·nginx·apache·lvs
吹什么轩1 小时前
linux网络:UDP套接字的业务实现:字典
linux·运维·udp
迷途之人不知返1 小时前
gcc编译器,以及源文件的翻译
linux
秋田君1 小时前
QT_JSON文件操作
开发语言·qt·json
啊啊啊啊啊!!!!1 小时前
【Linux】初始Linux操作系统
linux·运维·服务器
runafterhit2 小时前
【学习地图】Linux学习类 · 文章索引
linux·运维·学习
杨云龙UP2 小时前
Oracle ASH 报告详解:与 AWR 的区别、使用场景及生成方法
linux·运维·服务器·数据库·oracle
不正经学生3 小时前
C语言大小端字节序:内存里字节的排列顺序
c语言·开发语言·arm开发·c++·算法·c#