Я имею дело с утечкой памяти в коде C в эти дни. Я поражен, увидев разные утечки памяти в разных аппаратных архитектурах.
Ниже приводится сумма утечек, показанная valgrind в 64-битной архитектуре:
LEAK SUMMARY:
==4064== definitely lost: 1,600,192 bytes in 7 blocks
==4064== indirectly lost: 0 bytes in 0 blocks
==4064== possibly lost: 0 bytes in 0 blocks
==4064== still reachable: 3,217,416 bytes in 2,155 blocks
==4064== suppressed: 0 bytes in 0 blocks
==4064== Reachable blocks (those to which a pointer was found) are not shown.
==4064== To see them, rerun with: --leak-check=full --show-reachable=yes
==4064==
==4064== For counts of detected and suppressed errors, rerun with: -v
==4064== ERROR SUMMARY: 7 errors from 7 contexts (suppressed: 4 from 4)
И следующее для 32-битной архитектуры
LEAK SUMMARY:
==29607== definitely lost: 1,600,048 bytes in 4 blocks .
==29607== indirectly lost: 456 bytes in 33 blocks.
==29607== possibly lost: 0 bytes in 0 blocks.
==29607== still reachable: 96 bytes in 12 blocks.
==29607== suppressed: 0 bytes in 0 blocks.
==29607== Reachable blocks (those to which a pointer was found) are not shown.
==29607== To see them, rerun with: --show-reachable=yes
Какие могут быть причины для этого.