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