Недавно я разработал привычку запускать все мои программы с помощью valgrind
, чтобы проверить утечку памяти, но большинство ее результатов были для меня немного загадочными.
Для моего последнего запуска valgrind -v
дал мне:
All heap blocks were freed -- no leaks are possible
Это означает, что моя программа покрыта для утечек памяти, правильно?
Итак, что означает эта ошибка? Моя программа не правильно считывает определенные блоки памяти?
ERROR SUMMARY: 1 errors from 1 contexts (suppressed: 14 from 9)
1 errors in context 1 of 1:
Invalid read of size 4
at 0x804885B: findPos (in /home/a.out)
by 0xADD918: start_thread (pthread_create.c:301)
by 0xA26CCD: clone (clone.S:133)
Address 0x4a27108 is 0 bytes after a block of size 40 alloc'd
at 0x4005BDC: malloc (vg_replace_malloc.c:195)
by 0x804892F: readInput (in /home/a.out)
by 0xADD918: start_thread (pthread_create.c:301)
by 0xA26CCD: clone (clone.S:133)
used_suppression: 14 dl-hack3-cond-1
Кроме того, какие здесь так называемые "подавленные" ошибки?