cJSON使用笔记
2024-10-17 00:14:49
将cJSON用到STM32f103上
cJSON内存管理使用的是标准库stdlib.h的malloc()free()realloc()动态内存管理函数,我STM32F103使用的是正点原子的malloc.c文件里的myfree() mymalloc()函数
1、修改内容文件Cjson.c
cJSON_Delete(root);//出错
cJSON_GetObjectItemCaseSensitive(testjson, "Mac");//申请内存失败
修改内容:
//被修改部分
//#define internal_malloc malloc
//#define internal_free free
//#define internal_realloc realloc #define internal_malloc mymalloc
#define internal_free myfree
#define internal_realloc myrealloc
否则会内存出错。
2、cjson数组问题:
(1){"mac":"1234"} valuestring
(2){"card":["1235","2345"]} ARRAY
(3)注意是双引号 ,否则cJSON_Parse()解析返回的指针参数未null。
3、
cJSON *testjson;
cJSON *testjsonmac;// MAC地址
testjson=cJSON_CreateObject();
testjson = cJSON_Parse(my_json_string)
testjsonmac=cJSON_GetObjectItemCaseSensitive(testjson, "mac");
cJSON_Delete(testjson);
cJSON_CreateObject()函数内部会动态申请一定字节的内存,所以最后解析完毕之后一定要释放内存cJSON_Delete(testjson),cJSON_Delete()函数内部会调用函数free();testjsonmac的地址时申请了内存的指针testjson指向的那块内存里的其中一个地址,不用为
testjsonmac申请内存。
最新文章
- wget
- oracle 用户创建这个挺靠谱
- Effective Java学习笔记
- poj2318
- RouterOS DNS劫持 -- A记录
- javascript优化--07模式(对象)02
- Children of the Candy Corn 分类: POJ 2015-07-14 08:19 7人阅读 评论(0) 收藏
- 操作无效:已关闭 Lob。 ERRORCODE=-4470, SQLSTATE=null
- Qt5 QTableWidget设置列表自动适应列宽
- Codeforces Round #104 (Div. 1)
- spring框架详解
- jQuery Ajax: $.post请求示例
- [BZOJ1001] [Beijing2006] 狼抓兔子 (最短路)
- Maven-04: 三套生命周期
- EXT 设置编辑框为只读
- Windows10 永久激活查询/激活时间查询/激活查询命令/激活码查询
- [UE4]插值interp
- __init__和__new__的异同
- TensorRT层和每个层支持的精度模式
- Redis进阶实践之七Redis和Lua初步整合使用(转载 7)