cJSON库使用:特别注意事项

cJSON的简单使用——STM32移植

cJSON打包功能使用-代码案例、特别注意事项

   在前面的文章中,我们对cJSON进行了一些简单分析,包括解析、打包这两种最常用功能,cJSON的移植相对简单,但是在使用的时候,还是有一些特别需要注意的地方的,这 主要是因为 cJSON库 中的一些函数会进行内存申请操作,但是并不会自动释放内存,这就相当于 是风险, 需要使用者自己去及时的释放 内存。如果处理不当,会造成内存用完,进而程序也运行不了多久就废掉了。所以需要特别注意的地方:

(1)使用cJSON_Parse创建一个 cJSON指针后,用完务必 使用 cJSON_Delete函数释放 该cJSON指针。

(2)使用cJSON_Createxxx函数创建 json对象后, 用完务必使用 cJSON_Delete函数释放 该cJSON指针。

(3)使用 cJSON_Print函数 将cJSON数据 解析成 char 字符串后,务必使用 cJSON_free函数释放 该char指针,这个 细节隐藏的很深,因为cJSON_Print 函数不光是 print打印,他会 调用cJSON_malloc 申请内存,所以用完 必须要释放 掉 该char 指针。

cJSON_Delete(root);    //非常重要!!!!!!
CJSON_free(payload);   //非常重要!!!!!!
发布了247 篇原创文章 · 获赞 257 · 访问量 62万+

猜你喜欢

转载自blog.csdn.net/u012351051/article/details/100609657