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

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

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

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

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

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

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

相关推荐
崇山峻岭之间2 分钟前
Keil5输出hex转换为bin的设置
linux·运维·服务器
谷雪_65842 分钟前
Linux 网络命名空间:从内核原理到企业级容器网络架构全景实战
linux·网络·架构
忧郁的紫菜43 分钟前
WCF+JSON+实体对象与WebService+DataSet效率大比拼
数据库·oracle·json
qq_163135751 小时前
Linux 【03- chgrp命令超详细教程】
linux
我会尽全力 乐观而坚强2 小时前
MySQL库与表的操作
linux·数据库·mysql
着迷不白3 小时前
Linux 磁盘管理完全指南:分区、文件系统、挂载与 LVM 实战
linux·运维·服务器
山川而川-R3 小时前
LangChain
linux·运维·服务器
QH_ShareHub3 小时前
Linux 根目录结构详解
linux·运维·服务器
文祐3 小时前
C语言用双向链表实现单调递减(递增)队列
c语言·开发语言·链表
郝学胜-神的一滴4 小时前
CMake 038:OBJECT目标复用编译+Linux动态库版本自动化管理
linux·c++·程序人生·软件工程·软件构建·cmake·工程配置