json-tutorial icon indicating copy to clipboard operation
json-tutorial copied to clipboard

[tutorial07] lept_parse_object 函数中m.k=NULL;一句是否会有内存泄漏的情况?

Open 1092626063 opened this issue 5 years ago • 1 comments

lept_parse_object 函数中 m.k 是通过 malloc 分配的,但是在 memcpy 执行完毕后的语句 m.k = NULL; 这里是否存在内存泄漏,因为我并没有分析出来哪里释放了用 malloc 分配的堆内存。求指点

1092626063 avatar Dec 02 '20 14:12 1092626063

在 m.k = NULL前

m已经被 这一行 这里压入栈了

换而言之,m的信息都已经被存储在另一个地方了,包括你刚才说的通过 malloc 分配的内存的地址

这一行 说的很清楚了,m.k 的所有权已经被变更了,所以可以直接赋值 NULL

这段内存会作为 lept_member 的key or value 而存在

最终会在 lept_memeber 的解析中,被释放

chanchancl avatar Dec 03 '20 08:12 chanchancl