Proper pointer cleanup question [message #34679] |
Mon, 07 April 2003 16:01 |
MKatz843
Messages: 98 Registered: March 2002
|
Member |
|
|
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
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.
Thanks,
M. Katz
|
|
|