[Json -c] json_tokener_parse 로 만든 object가 free가 안됩니다.
글쓴이: hwyuji0424 / 작성시간: 화, 2023/05/02 - 10:01오전
안녕하세요.
c 언어로 json 파싱 프로그램을 만들고 있습니다.
아래와 같이 간단한 소스를 만들어 테스트 해봤는데, 메모리 프리가 안되는 현상이 발생했습니다.
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h> #include <json-c/json.h> static char Data_buff[] = "[3,\"00009\",{\"Time\":\"2023-04-11T23:21:38Z\"}]"; void main(void) { int i = 0 , j = 0;; json_object *oParsing = NULL; char Make_Data[1000]; for(i = 0 ; i < 100 ; i++) { memcpy(Make_Data , Data_buff , sizeof(Data_buff)); printf("%s " , Make_Data); oParsing = json_tokener_parse(Make_Data); printf("[%x] \n" , oParsing); json_object_put(oParsing); } }
json_tokener_parse 때, array type으로 object가 리턴이 됩니다.
이 array type object 를 json_object_put으로 free를 하면, _ref_count 가 2라서 free가 안됩니다.
array type은 따로 free 하는 방법이 있는건가요????
감사합니다.
Forums:
댓글 달기