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

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

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

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

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

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

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

相关推荐
键盘上的猫头鹰12 小时前
【Linux 基础教程(四)】文件内容查看、打包压缩与搜索、重定向管道及环境变量
linux·服务器·python
tellmewhoisi13 小时前
linux 基础知识(文件权限相关)
linux·运维·服务器
jiayong2313 小时前
Claude Code 常见操作实战指南
linux·服务器·网络·ai·claude·claude code
bubiyoushang88813 小时前
基于 C/C++ 的 MQTT 物联网通信协议实现
c语言·c++·物联网
醇氧13 小时前
【Linux 】sudo、sudo -i、su、su - 完整区别总结
linux·运维·服务器
xiaoye-duck13 小时前
《Linux系统编程》System V IPC 进阶:消息队列与信号量从入门到内核
linux
代码熬夜敲Q13 小时前
网络工程相关
linux·服务器·网络
我先去打把游戏先14 小时前
VMware NAT 模式 Ubuntu 虚拟机「宿主机能上网、虚拟机 ping 不通外网 + apt 更新卡死」全故障复盘
linux·运维·vscode·单片机·嵌入式硬件·ubuntu·keil5
开压路机14 小时前
基础IO
linux·运维·服务器
三品吉他手会点灯14 小时前
C语言学习笔记 - 46.运算符和表达式 - 运算符4 - 对初学运算符的一些建议
c语言·开发语言·笔记·学习