2013-02-14 2 views
5

나는 다음과 같은 코드json_object를 해제하는 방법?

#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); 
} 

json_object_put(new_obj) 무료로 모든 메모리는 new_obj 관련이 있습니까습니까? 문서에서

답변

3

:

void json_object_put (struct json_object *this) 

감소시킵니다이 도달하면 참조 JSON_OBJECT의 수와 무료 제로

출처 : http://oss.metaparadigm.com/json-c/doc/html/json__object_8h.html

+2

나는 이것을 알고있다. 나는 예를 들어 json_object_put이 무료로 나왔다는 확인을하고 있는데, – MOHAMED

+0

을 넣었다. 그래서 free'd 메모리가 실제로 free'd인지 확인하는 방법을 묻는거야? 그것은 완전히 다른 질문입니다. – djechlin

+2

나는 이것도 흥미로운 질문을 발견했다. 함수의 이름은 예상치 못한 것입니다 ... "put"은 참조 횟수를 감소시키고 필요한 경우 해제하는 것을 의미한다는 직관적 인 이해가 없습니다. – Kolban

0

우리는 무료로 할 필요가 없습니다 기억. 이 질문에 대한 답변은 this other question을 참조하십시오.

+0

이것은 실제로 질문에 대답하지 않습니다. 당신의 대답에 * 왜 "기억을 풀 필요가 없다"고 설명하십시오. –