comp.lang.idl-pvwave archive
Messages from Usenet group comp.lang.idl-pvwave, compiled by Paulo Penteado

Home » Public Forums » archive » Re: Proper pointer cleanup question
Show: Today's Messages :: Show Polls :: Message Navigator
E-mail to friend 
Return to the default flat view Create a new topic Submit Reply
Re: Proper pointer cleanup question [message #34678 is a reply to message #34676] Mon, 07 April 2003 16:23 Go to previous message
Paul Van Delst[1] is currently offline  Paul Van Delst[1]
Messages: 1157
Registered: April 2002
Senior Member
"M. Katz" wrote:
>
> I want to make sure I'm taking all the steps necessary to clean up
> pointers and free memory when I'm done with them. Here's an example.
>
> Suppose I have a pointer to a structure that contains pointers.
>
> a = ptr_new({n:10, p:ptrarr(10)})
>
> So, a is a pointer, and ((*a).p)(i) are pointers as well.
> When I'm done with a and all of it's components, I can do a few things
> to clean it up, but I don't want to do more than what's necessary.
> Here's a few options.
>
> 1) Just a:
> ptr_free, a
>
> 2) a and all of its dependent pointers:
> for i=0,n_elements( (*a).p )-1 do $
> ptr_free, ((*a).p)(i)
> ptr_free, a

#2 is the go. All the others leave you with dangling references and memory leaks. My
personal mantra is that when it comes to pointers, be very explicit in their garbage
collection i.e. don't assume freeing a pointer also frees any "child" pointers like the
components "p" in your example. (I actually don't know of any languages that *do* do that,
but I'm barely bilingual. :o)

>
> 3) Re-assign a to a scalar:
> a = 0
>
> 4) Re-assign *a to a scalar:
> *a = 0
>
> What's the best thing to do? My pointed-to arrays are going to get
> pretty large, so I don't want to strand any memory unnecessarily.


--
Paul van Delst
CIMSS @ NOAA/NCEP/EMC
Ph: (301)763-8000 x7748
Fax:(301)763-8545
[Message index]
 
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Previous Topic: Pb to work with huge files
Next Topic: Re: Where is the trick in objects

-=] Back to Top [=-
[ Syndicate this forum (XML) ] [ RSS ] [ PDF ]

Current Time: Fri Oct 10 10:22:50 PDT 2025

Total time taken to generate the page: 0.48235 seconds