|
Re: Attempt to store into an expression: Structure reference [message #63276 is a reply to message #63275] |
Tue, 04 November 2008 09:40   |
R.Bauer
Messages: 1424 Registered: November 1998
|
Senior Member |
|
|
David Fanning schrieb:
> =?ISO-8859-2?Q?F=D6LDY_Lajos?= writes:
>
>> On Tue, 4 Nov 2008, greg.addr@googlemail.com wrote:
>>
>>> I'm doing something wrong here, but what - I'm not sure...
>>>
>>> IDL> help,s.tab
>>> <Expression> POINTER = <PtrHeapVar26>
>>>
>>> IDL> help,*(s.tab)
>>> <PtrHeapVar26> STRUCT = -> TAB Array[2]
>>>
>>> IDL> help,(*(s.tab))[0]
>>> <Expression> STRUCT = -> TAB Array[1]
>>>
>>> IDL> help,((*(s.tab))[0]).img
>>> <Expression> POINTER = <NullPointer>
>>>
>>> IDL> ((*(s.tab))[0]).img=ptr_new(image)
>>> % Attempt to store into an expression: Structure reference.
>>>
>> Seems to be an IDL bug. This works in FL:
>>
>> s={s, tab:ptr_new()}
>> tab={tab, img:ptr_new()}
>> s.tab=ptr_new(replicate(tab, 2))
>> ((*(s.tab))[0]).img=ptr_new(dist(100))
>
> This is what I had in mind:
>
> s={s, tab:ptr_new()}
> tab={tab, img:ptr_new()}
> s.tab=ptr_new(replicate(tab, 2))
> (*(s.tab))[0].img=ptr_new(dist(100))
>
> Cheers,
>
> David
I think it should be only
(*s.tab)[0].img=ptr_new(dist(100))
cheers
Reimar
|
|
|
Re: Attempt to store into an expression: Structure reference [message #63277 is a reply to message #63276] |
Tue, 04 November 2008 09:12   |
David Fanning
Messages: 11724 Registered: August 2001
|
Senior Member |
|
|
=?ISO-8859-2?Q?F=D6LDY_Lajos?= writes:
>
> On Tue, 4 Nov 2008, greg.addr@googlemail.com wrote:
>
>>
>> I'm doing something wrong here, but what - I'm not sure...
>>
>> IDL> help,s.tab
>> <Expression> POINTER = <PtrHeapVar26>
>>
>> IDL> help,*(s.tab)
>> <PtrHeapVar26> STRUCT = -> TAB Array[2]
>>
>> IDL> help,(*(s.tab))[0]
>> <Expression> STRUCT = -> TAB Array[1]
>>
>> IDL> help,((*(s.tab))[0]).img
>> <Expression> POINTER = <NullPointer>
>>
>> IDL> ((*(s.tab))[0]).img=ptr_new(image)
>> % Attempt to store into an expression: Structure reference.
>>
>
> Seems to be an IDL bug. This works in FL:
>
> s={s, tab:ptr_new()}
> tab={tab, img:ptr_new()}
> s.tab=ptr_new(replicate(tab, 2))
> ((*(s.tab))[0]).img=ptr_new(dist(100))
This is what I had in mind:
s={s, tab:ptr_new()}
tab={tab, img:ptr_new()}
s.tab=ptr_new(replicate(tab, 2))
(*(s.tab))[0].img=ptr_new(dist(100))
Cheers,
David
--
David Fanning, Ph.D.
Fanning Software Consulting, Inc.
Coyote's Guide to IDL Programming: http://www.dfanning.com/
Sepore ma de ni thui. ("Perhaps thou speakest truth.")
|
|
|
|
Re: Attempt to store into an expression: Structure reference [message #63279 is a reply to message #63278] |
Tue, 04 November 2008 08:57   |
Foldy Lajos
Messages: 268 Registered: October 2001
|
Senior Member |
|
|
On Tue, 4 Nov 2008, greg.addr@googlemail.com wrote:
>
> I'm doing something wrong here, but what - I'm not sure...
>
> IDL> help,s.tab
> <Expression> POINTER = <PtrHeapVar26>
>
> IDL> help,*(s.tab)
> <PtrHeapVar26> STRUCT = -> TAB Array[2]
>
> IDL> help,(*(s.tab))[0]
> <Expression> STRUCT = -> TAB Array[1]
>
> IDL> help,((*(s.tab))[0]).img
> <Expression> POINTER = <NullPointer>
>
> IDL> ((*(s.tab))[0]).img=ptr_new(image)
> % Attempt to store into an expression: Structure reference.
>
Seems to be an IDL bug. This works in FL:
s={s, tab:ptr_new()}
tab={tab, img:ptr_new()}
s.tab=ptr_new(replicate(tab, 2))
((*(s.tab))[0]).img=ptr_new(dist(100))
regards,
lajos
|
|
|
|
Re: Attempt to store into an expression: Structure reference [message #63282 is a reply to message #63281] |
Tue, 04 November 2008 08:44   |
David Fanning
Messages: 11724 Registered: August 2001
|
Senior Member |
|
|
greg.addr@googlemail.com writes:
> I'm doing something wrong here, but what - I'm not sure...
>
> IDL> help,s.tab
> <Expression> POINTER = <PtrHeapVar26>
>
> IDL> help,*(s.tab)
> <PtrHeapVar26> STRUCT = -> TAB Array[2]
>
> IDL> help,(*(s.tab))[0]
> <Expression> STRUCT = -> TAB Array[1]
>
> IDL> help,((*(s.tab))[0]).img
> <Expression> POINTER = <NullPointer>
>
> IDL> ((*(s.tab))[0]).img=ptr_new(image)
> % Attempt to store into an expression: Structure reference.
>
> Any ideas why I can't assign something to this pointer?
Too much work to test this, but I think you have an
extra set of parentheses. I think it should be like
this:
((*(s.tab))[0].img=ptr_new(image)
Cheers,
David
--
David Fanning, Ph.D.
Fanning Software Consulting, Inc.
Coyote's Guide to IDL Programming: http://www.dfanning.com/
Sepore ma de ni thui. ("Perhaps thou speakest truth.")
|
|
|
|
|