我在我的程序中使用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