==10810== HEAP SUMMARY:
==10810== in use at exit: 0 bytes in 0 blocks
==10810== total heap usage: 302,283 allocs, 302,283 frees, 221,555,789 bytes allocated
Реально запрошено 35644320 байт (без учета накладных расходов).
Это 95000 объектов по 48 байт + 95000 объектов по 128 + 95000 объектов по 192 байта + еще 1Mb
Там правда еще есть realloc() который прошел c 1600 байт до 758400 с шагом 1600 байт :(
правильный time -v говорит «Maximum resident set size (kbytes): 41220»
Если запустить «time -v valgrind ./prog» то получаем «Maximum resident set size (kbytes): 147480»
Откуда такая адская цифра в valgrind?
Если я не освобождаю память, то все еще интереснее
==18447== HEAP SUMMARY:
==18447== in use at exit: 35,691,280 bytes in 284,109 blocks
==18447== total heap usage: 302,283 allocs, 18,174 frees, 221,555,789 bytes allocated
==18447==
==18447== LEAK SUMMARY:
==18447== definitely lost: 112 bytes in 1 blocks
==18447== indirectly lost: 805,248 bytes in 2 blocks
==18447== possibly lost: 0 bytes in 0 blocks
==18447== still reachable: 34,885,920 bytes in 284,106 blocks
Да! Я не отдал 34,885,920 байт! Но откуда 220М мегабайт ?!