PS Here is a better variant that actually leaks: edd@max:/tmp$ cat leak.cpp
#include <cstdio> #include <cstdlib> #include <iostream> #include <cmath> int main() { double *d = new double[1024]; if (d) std::cout << "Allocated" << std::endl; double e = std::exp(1.0); d = &e; exit(0); } edd@max:/tmp$ g++ -Wall -o leak leak.cpp edd@max:/tmp$ valgrind ./leak ==16924== Memcheck, a memory error detector ==16924== Copyright (C) 2002-2013, and GNU GPL'd, by Julian Seward et al. ==16924== Using Valgrind-3.10.0 and LibVEX; rerun with -h for copyright info ==16924== Command: ./leak ==16924== Allocated ==16924== ==16924== HEAP SUMMARY: ==16924== in use at exit: 8,192 bytes in 1 blocks ==16924== total heap usage: 1 allocs, 0 frees, 8,192 bytes allocated ==16924== ==16924== LEAK SUMMARY: ==16924== definitely lost: 8,192 bytes in 1 blocks ==16924== indirectly lost: 0 bytes in 0 blocks ==16924== possibly lost: 0 bytes in 0 blocks ==16924== still reachable: 0 bytes in 0 blocks ==16924== suppressed: 0 bytes in 0 blocks ==16924== Rerun with --leak-check=full to see details of leaked memory ==16924== ==16924== For counts of detected and suppressed errors, rerun with: -v ==16924== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0) edd@max:/tmp$ By overwriting d the memory is lost for good, and valgrind notices as you;d think it would. Dirk -- http://dirk.eddelbuettel.com | @eddelbuettel | e...@debian.org _______________________________________________ Rcpp-devel mailing list Rcpp-devel@lists.r-forge.r-project.org https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/rcpp-devel