主要涉及两个释放内存的函数:cJSON_free和cJSON_Delete,该项目在github上有如下说明:
Printing JSON
Given a tree of
cJSONitems, you can print them as a string usingcJSON_Print.char *string = cJSON_Print(json);It will allocate a string and print a JSON representation of the tree into it. Once it returns, you are fully responsible for deallocating it after use with your allocator. (usually
free, depends on what has been set withcJSON_InitHooks).
也就是说调用cJSON_Print(以及cJSON_PrintUnformatted)后,必须自行释放内存,对于1.5版本及以上的cJSON可以使用cJSON_free函数,其他版本直接使用free也可,示例代码如下:
char *json_string = cJSON_Print(item);
if (json_string)
{
printf("%s\n", json_string);
cJSON_free(json_string);
}
另一段说明如下:
For every value type there is a
cJSON_Create...function that can be used to
cJSON内存管理详解

本文详细解析了cJSON库中cJSON_Print与cJSON_Delete函数的使用方法,强调了调用cJSON_Print后需使用cJSON_free释放内存,以及创建的cJSON结构体需用cJSON_Delete释放,避免内存泄漏。并解释了在数组或对象中添加项后的正确释放方式。
最低0.47元/天 解锁文章
1万+

被折叠的 条评论
为什么被折叠?



