Thanks for the suggestion. With valgrind I found all the problems. That the variable was local to the constructor was not a problem. The main problem was that I was later assigning another value, over-writing the value from new. And of course that meant the delete couldn't work either. I have a larger program that does extensive new's and deletes and I have had it run for hours without running out of memory. I wrote that several years ago and I guess I've gotten rusty.
On Sun, May 13, 2012 at 12:04 AM, Harold Lee <har...@hotelling.net> wrote: > Using delete[] for an array allocated with new[] is correct, so I > don't think you've given us enough information to find the bug. > > Are you getting any compiler warnings or errors? > Have you tried compiling with -Wall and -Wextra? > Are any of these overwritten variables pointers into the array var? > Could the array size stored at address (var - 4) have been overwritten > by accident by some other code? > Have you tried using valgrind to automatically find an accidental > overwrite earlier in execution? > > Harold > > On Sat, May 12, 2012 at 11:38 PM, Jeff Newmiller > <jdnew...@dcn.davis.ca.us> wrote: > > It did make it to me, but > > > > a) I am out of town away from computers, and > > > > b) without a working example I probably would not look at it very closely > > > --------------------------------------------------------------------------- > > Jeff Newmiller The ..... ..... Go > Live... > > DCN:<jdnew...@dcn.davis.ca.us> Basics: ##.#. ##.#. Live > Go... > > Live: OO#.. Dead: OO#.. Playing > > Research Engineer (Solar/Batteries O.O#. #.O#. with > > /Software/Embedded Controllers) .OO#. .OO#. > rocks...1k > > > --------------------------------------------------------------------------- > > Sent from my phone. Please excuse my brevity. > > > > Richard Harke <paleopeng...@gmail.com> wrote: > > > >>My last post seems to have gotten lost so I'll try again. > >> > >>I'm working on a small C++ program. In one of the constructors I > >>create an array with > >>double * var = new double [size] After use, before exiting the > >>constructor I return the memory with delete [] var But after return > >>from the delete, several private class variables are written over. > >>I have checked that these variables are correct just before the delete > >>call and are modified right after. Does anyone have any idea what is > >>going on? > >> > >>I'm running debian squeeze for amd64 with gcc 4.4.5 This morning I > >>did an apt-get upgrade to be sure I had any recent fixes. > >> > >>Richard Harke > >>_______________________________________________ > >>vox-tech mailing list > >>vox-tech@lists.lugod.org > >>http://lists.lugod.org/mailman/listinfo/vox-tech > > > > _______________________________________________ > > vox-tech mailing list > > vox-tech@lists.lugod.org > > http://lists.lugod.org/mailman/listinfo/vox-tech > _______________________________________________ > vox-tech mailing list > vox-tech@lists.lugod.org > http://lists.lugod.org/mailman/listinfo/vox-tech >
_______________________________________________ vox-tech mailing list vox-tech@lists.lugod.org http://lists.lugod.org/mailman/listinfo/vox-tech