登录 用户中心() [退出] 后台管理 注册
   
您的位置: 首页 >> CLQ工作室开源代码 >> 主题: cJSON_Print 后必须使用 cJSON_free 释放内存     [回主站]     [分站链接]
标题
cJSON_Print 后必须使用 cJSON_free 释放内存
clq
浏览(470) + 2022-10-08 22:15:31 发表 编辑

关键字:

[2023-01-11 18:06:58 最后更新]
cJSON_Print 后必须使用 cJSON_free 释放内存


lstring * json_string_c(mempool * mem, cJSON * json, const char * key) //还是返回 lstring 比较方便后面的操作
//lstring * json_string(cJSON * json, const char * key) //还是返回 lstring 比较方便后面的操作
{
cJSON * item = cJSON_GetObjectItem(json, key);

//printf("%s\n", cJSON_Print(item));

const char * _value = cJSON_Print(item);

//cJSON_Print 后必须使用 cJSON_free 释放内存 //https://www.jianshu.com/p/e4a7e6a42190
//https://www.dazhuanlan.com/dreamable/topics/1787096
//在手动模式下,cJSON提供了钩子函数来帮助用户自定义内存管理函数,如果不设置,这默认为malloc和free

//if (NULL == _value) _value = ""; //不修改 NULL 的结果的话,后面都得是错误的,并且会异常退出

lstring * value = NewString("", mem);

if (NULL != _value) {
value = NewString(_value, mem);

cJSON_free((void *)_value);
}//if 1

//cJSON_free((void *)_value);

//这时候的的值似乎带有双引号,要去掉
//printf("%s\n", _value);

//lstring * value = NewString(_value, _self->mem);

if ((value->len >= 2) && ('"' == value->str[0]))
{
value = substring(value, 1, value->len-2); //取第一个字符到最后一个字符之间的内容
}//

//printf("----%s----\n", value->str);

//return _value;
//return value->str;
return value;
}//


lstring * json_string(ui_json * _self, cJSON * json, const char * key)
{
return json_string_c(_self->mem, json, key);

}//



总数:0 页次:1/0 首页 尾页  
总数:0 页次:1/0 首页 尾页  


所在合集/目录



发表评论:
文本/html模式切换 插入图片 文本/html模式切换


附件:



NEWBT官方QQ群1: 276678893
可求档连环画,漫画;询问文本处理大师等软件使用技巧;求档softhub软件下载及使用技巧.
但不可"开车",严禁国家敏感话题,不可求档涉及版权的文档软件.
验证问题说明申请入群原因即可.

Copyright © 2005-2020 clq, All Rights Reserved
版权所有
桂ICP备15002303号-1