cJSON_Delete
cJSON_Delete释放cJSON构造object时申请的内存资源
通常用法
cJSON *json = cJSON_CreateObject();
...
...
cJSON_Delete(json);
调用cJSON_Delete时产生segmentfault
错误段代码:
cJSON *json = cJSON_CreateObject();
cJSON *payload = cJSON_CreateObject();
...
cJSON_AddItemObject(json, "payloaf", payload);
...
cJSON_Delete(payload);
cJSON_Delete(json);
构造一个json对象 并把payload对象作为一个节点加入到json中
经过debug发现cJSON_Delete(json)时发生了内存越界访问
查看cJSON源码可以发现 cJSON_Delete会主动删除每个节点的资源
CJSON_PUBLIC(void) cJSON_Delete(cJSON *item)
{
cJSON *next = NULL;