title: C and OpenCV memory leaks
body: <p>I have problem with memory leaks. In this simple program:</p>
  
  <pre><code>#include &lt;stdlib.h&gt;
  #include &lt;stdio.h&gt;
  #include "opencv2/core/core.hpp"
  #include "opencv2/highgui/highgui.hpp"
  
  int main() {
      CvMat *src;
      src = cvLoadImageM("p1.jpg", CV_LOAD_IMAGE_GRAYSCALE);
      cvSaveImage("p2.bmp", src, 0);  
      cvReleaseMat(&amp;src);
      return 0;
  }
  </code></pre>
  
  <p>According to valgrind, there are 7 leaks:</p>
  
  <pre><code>==10478== HEAP SUMMARY:
  ==10478==     in use at exit: 10,464 bytes in 7 blocks
  ==10478==   total heap usage: 154 allocs, 147 frees, 2,908,450 bytes allocated
  ==10478== 
  ==10478== LEAK SUMMARY:
  ==10478==    definitely lost: 0 bytes in 0 blocks
  ==10478==    indirectly lost: 0 bytes in 0 blocks
  ==10478==      possibly lost: 0 bytes in 0 blocks
  ==10478==    still reachable: 10,464 bytes in 7 blocks
  ==10478==         suppressed: 0 bytes in 0 blocks
  ==10478== Rerun with --leak-check=full to see details of leaked memory
  ==10478== 
  ==10478== For counts of detected and suppressed errors, rerun with: -v
  ==10478== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 2 from 2)
  </code></pre>
  
  <p>Can anybody tell me how to properly free memory? Thank you for your advice.</p>