C сложная утечка памяти

У меня небольшая утечка памяти в моей программе, и я не уверен, что это в моих выделениях или во внутренних c-структурах. Единственные mallocs, которые я использую:

results = (int*) malloc (instance_n * sizeof (int) );

instances = (char**) malloc (instance_n * sizeof (char*) );
for (i = 0; i < instance_n; i++) {
 instances[i] = (char*) malloc (1001 * sizeof (char) );
}

List_add (); (standard ****** linked list. Never gave me a problem)

И я освобождаю все в одном месте:

free (results);
List_clear (&dynamic);
for (i = 0; i < instance_n; i++) {
 free (instances[i]);
}
free (instances);

BTW: List_clear =

Node* node = list->last;
if (node == NULL) return;

while (node->previous != NULL)
 {
 node = node->previous;
 free (node->next);
 }
free (list->first);

Кроме того, я использую структуры timeval и FILE (файлы закрываются в конце методов)

Я что-то упускаю? Для меня это, безусловно, похоже, что я освобождаю все. У меня никогда не было проблемы с утечкой памяти, так что я ужасен при отладке, но Valgrind продолжает указывать на эту утечку памяти:

==3180== HEAP SUMMARY:
==3180== in use at exit: 62,951 bytes in 361 blocks
==3180== total heap usage: 556 allocs, 195 frees, 115,749 bytes allocated
==3180== 
==3180== LEAK SUMMARY:
==3180== definitely lost: 8,624 bytes in 14 blocks
==3180== indirectly lost: 1,168 bytes in 5 blocks
==3180== possibly lost: 4,925 bytes in 68 blocks
==3180== still reachable: 48,234 bytes in 274 blocks
==3180== suppressed: 0 bytes in 0 blocks
==3180== Rerun with --leak-check=full to see details of leaked memory
==3180==

Я не могу не заметить часть "14 блоков", но никакая часть моего кода не выделяет менее 20 частей, а 8624 байта - кратно 4 байтам, поэтому, скорее всего, это будет целая утечка.

заранее спасибо

1 ответ

Я только что нашел этот пункт на valgrind:

==3821== WARNING: Support on MacOS 10.8 is experimental and mostly broken.
==3821== WARNING: Expect incorrect results, assertions and crashes.
==3821== WARNING: In particular, Memcheck on 32-bit programs will fail to
==3821== WARNING: detect any errors associated with heap-allocated data.

И куча других людей получала те же 8624 байтовые утечки на MacOSX 10.8, поэтому я думаю, что это ложный результат.

licensed under cc by-sa 3.0 with attribution.