1. 程式人生 > >cJSON_Print()函式記憶體洩漏

cJSON_Print()函式記憶體洩漏

 問題 

問題如題,程式碼如下。

cJSON					*pJsonRoot;

char *p = cJSON_Print(pJsonRoot);

 

解決方法

 cJSON_Print()獲取字串指標後,記得釋放記憶體,不然會報記憶體洩漏。

free(p);

原因

檢視cJSON原始碼,cJSON_Print()函式有呼叫cJSON_malloc()函式,申請記憶體。

類似以下程式碼。

if (!(copy = (char*)cJSON_malloc(len))) 
    return 0;