I was debugging my program, and I noticed that although I marked almost all of this as a comment, and all I did was insert double values ββinto the vector, I have a memory leak. I read the api in the C ++ link, but found nothing. Here is the code:
#include <vector> #include <cstdlib> #include <iostream> #include "RegMatrix.h" #include "Matrix.h" using namespace std; int main(void) { vector<double> v; for (int i=0; i<9; i++) { v.push_back(i); } cout << endl; exit(EXIT_SUCCESS); }
And the valgrind message:
==9299== HEAP SUMMARY: ==9299== in use at exit: 128 bytes in 1 blocks ==9299== total heap usage: 5 allocs, 4 frees, 248 bytes allocated ==9299== ==9299== 128 bytes in 1 blocks are still reachable in loss record 1 of 1 ==9299== at 0x402569A: operator new(unsigned int) (vg_replace_malloc.c:255) ==9299== by 0x804937D: __gnu_cxx::new_allocator<double>::allocate(unsigned int, void const*) (in /home/yotamoo/workspace/ex3/main) ==9299== by 0x804922F: std::_Vector_base<double, std::allocator<double> >::_M_allocate(unsigned int) (in /home/yotamoo/workspace/ex3/main) ==9299== by 0x8048E6C: std::vector<double, std::allocator<double> >::_M_insert_aux(__gnu_cxx::__normal_iterator<double*, std::vector<double, std::allocator<double> > >, double const&) (in /home/yotamoo/workspace/ex3/main) ==9299== by 0x8048CA2: std::vector<double, std::allocator<double> >::push_back(double const&) (in /home/yotamoo/workspace/ex3/main) ==9299== by 0x8048B10: main (in /home/yotamoo/workspace/ex3/main) ==9299== ==9299== LEAK SUMMARY: ==9299== definitely lost: 0 bytes in 0 blocks ==9299== indirectly lost: 0 bytes in 0 blocks ==9299== possibly lost: 0 bytes in 0 blocks ==9299== still reachable: 128 bytes in 1 blocks ==9299== suppressed: 0 bytes in 0 blocks
This is strange. Any ideas? thanks
yotamoo
source share