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

Home » Public Forums » archive » passing structure elements... by value?
Show: Today's Messages :: Show Polls :: Message Navigator
E-mail to friend 
Return to the default flat view Create a new topic Submit Reply
passing structure elements... by value? [message #25725] Fri, 13 July 2001 09:03 Go to previous message
Randall Skelton is currently offline  Randall Skelton
Messages: 169
Registered: October 2000
Senior Member
Hi all,

I am seem to be somewhat confused on passing structure... this *almost*
seems like one of those dreaded 'pass by reference/pass by value'
problems...

I have a simple routine that increments the value of a structure:

pro test, mod_struct
for i=0, n_tags(mod_struct)-1 do begin
mod_struct.(i) = mod_struct.(i) + 1
endfor
end

As expected, this will increment all of the values in a passed structure.

IDL> struct = {A:0, B:0} & big = replicate(struct,3)
IDL> print, big
{ 0 0}{ 0 0}{ 0 0}
IDL> test, big
IDL> print, big
{ 1 1}{ 1 1}{ 1 1}

But, when I try and increment a single element in the structure it fails?

IDL> struct = {A:0, B:0} & big = replicate(struct,3)
IDL> test, big[0]
IDL> print, big
{ 0 0}{ 0 0}{ 0 0}
^^^^^^^^^^^^^^^^^^

I expected the ^^ element above to be ones? Is there any way to force IDL
to pass this by reference instead of passing by value? It would be nice if
you could put brackets around the thing you want to pass by reference...
something like '(big[0])'

Have a good weekend all!
Randall

PS: I'm sure Liam's new book answers this...
[Message index]
 
Read Message
Read Message
Read Message
Read Message
Read Message
Previous Topic: Events in IDLDrawWidget
Next Topic: widget-programming

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

Current Time: Wed Oct 08 13:05:20 PDT 2025

Total time taken to generate the page: 0.00399 seconds