[vox-tech] C++ problem

Richard Harke paleopenguin at gmail.com
Mon May 14 20:40:55 PDT 2012


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 <harold at 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
> <jdnewmil at 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:<jdnewmil at 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 <paleopenguin at 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 at lists.lugod.org
> >>http://lists.lugod.org/mailman/listinfo/vox-tech
> >
> > _______________________________________________
> > vox-tech mailing list
> > vox-tech at lists.lugod.org
> > http://lists.lugod.org/mailman/listinfo/vox-tech
> _______________________________________________
> vox-tech mailing list
> vox-tech at lists.lugod.org
> http://lists.lugod.org/mailman/listinfo/vox-tech
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.lugod.org/pipermail/vox-tech/attachments/20120514/e08e9dc3/attachment.htm 


More information about the vox-tech mailing list