如何释放json_object?

MOH*_*MED 9 c json libjson

我有以下代码

#include <stdio.h>
#include <stdlib.h>
#include <stddef.h>
#include <string.h>

#include <json/json.h>

int main(int argc, char **argv)
{
      json_object *new_obj;
      char buf[] = "{ \"foo\": \"bar\", \"foo2\": \"bar2\", \"foo3\": \"bar3\" }";
      new_obj = json_tokener_parse(buf);
      .....
      json_object_put(new_obj);
}
Run Code Online (Sandbox Code Playgroud)

是否json_object_put(new_obj)释放所有内存相关new_obj

dje*_*lin 5

从文档:

void json_object_put    (struct json_object *this)  
Run Code Online (Sandbox Code Playgroud)

减少json_object的引用计数,如果它达到零则自由

资料来源:http: //oss.metaparadigm.com/json-c/doc/html/json__object_8h.html

  • 我知道这个.我正在寻找一个确认,json_object_put在我放的示例中释放了meomry (3认同)
  • 我也发现这是一个有趣的问题.该函数的名称是意外的...我没有直观的理解,"put"意味着减少引用计数并在需要时释放. (3认同)
  • json_object_put的命名被延迟。 (2认同)