0

Valgrind 显示肯定丢失了 8 个字节,但我释放了内存。

==11492== 8 bytes in 1 blocks are definitely lost in loss record 3 of 4
==11492==    at 0x4029F6F: malloc (vg_replace_malloc.c:270)
==11492==    by 0x8049778: list_add (list.c:169)
==11492==    by 0x8049B9F: process_new_allocation_stats_and_state_PRIVATE (m61_allocation_core.c:54)
==11492==    by 0x8049CAC: attempt_create_allocation (m61_allocation_core.c:86)
==11492==    by 0x8048984: m61_malloc (m61.c:70)
==11492==    by 0x80487C4: main (mytest.c:12)

列表.c:

169 lnode *n = (lnode *) malloc(sizeof(lnode));
170 n->value = value;
171 syslog(LOG_NOTICE,"in list_add.  added lnode=%p Adding active_allocation n->value=%p\n", n, value);
    ...

245 syslog(LOG_NOTICE,"Freeing (*tmp)=%p\n", (*tmp));

246 syslog(LOG_NOTICE,"(*nptr)->next=%p  &(*nptr)->next=%p\n", (*nptr)->next, &(*nptr)->next);
247 *nptr = (*nptr)->next;
248 *nptr = (*nptr)->next;
249 free(*tmp);             //Free this lnode

list.c 日志的第一部分:

Sep 27 00:05:27 appliance m61[11492]: in list_add.  added lnode=0x420abb8 Adding active_allocation n->value=0x42088b0

第二部分日志:

Sep 27 00:05:27 appliance m61[11492]: Freeing (*tmp)=0x420abb8
4

0 回答 0