我在我的程序中使用cJSON將我的值轉換爲JSON並將其寫入文件。這裏是我的代碼的例子:cJSON內存泄漏
void writeStructToFile(IOPipe this, struct structtype somevalues) {
cJSON *jout = cJSON_CreateObject();
cJSON_AddItemToObject(jout, "V1", cJSON_CreateNumber(somevalues.v1));
cJSON_AddItemToObject(jout, "V2", cJSON_CreateNumber(somevalues.v2));
fprintf(this->outstream, "%s", cJSON_Print(jout));
cJSON_Delete(jout);
}
偉大的作品,但過一段時間後,我發現,Linux操作系統(嵌入式)殺死,因爲異常內存使用或設備(上Cortex A8的)我的程序只是掛起。在調試後我發現,即使我在最後刪除指針,該泄漏也完全出現在該函數中。任何人都可以看到泄漏?
那麼,當這個函數爲空(或者當你沒有調用它)時,內存泄漏會消失嗎? – 2014-10-02 10:21:46
是的,只是評論了這個功能,在終端中用「ps」檢查我的程序,並看到穩定的內存使用情況。沒有註釋,看到這個值慢慢上升,但是在工作10分鐘後它掛起系統,所以我不能再次連接它 – PaulPonomarev 2014-10-02 10:28:43
好吧。如果你註釋掉'fprintf()'行呢? – 2014-10-02 10:46:42