[Gambas-user] Struct with Array Field

Mayost Sharon sharon at 455.co.il
Sat Apr 8 22:31:29 CEST 2023


---------- Original Message -----------
From: "Mayost Sharon" <sharon at 455.co.il>
To: Gambas Mailing List <user at lists.gambas-basic.org>
Sent: Sat, 8 Apr 2023 22:04:15 +0200
Subject: Re: [Gambas-user] Struct with Array Field

> ---------- Original Message -----------
> From: T Lee Davidson <t.lee.davidson at gmail.com>
> To: user at lists.gambas-basic.org
> Sent: Fri, 7 Apr 2023 13:08:35 -0400
> Subject: Re: [Gambas-user] Struct with Array Field
> 
> > On 4/6/23 17:45, Jussi Lahtinen wrote:
> > > 
> > >      > In c terms which structure are interface for, strings and arrays are just pointer that are not initialized to a value until
> > >      > something is assigned to them.
> > >      >
> > >      > When you do a  mstrct = new mystruct it creates the structure with null pointers for those fields.
> > > 
> > [snip]
> > > 
> > > The topic was *objects *inside structure. They have only null pointers. Variables are valid without further actions.
> > > C does not have "new", but he was referring to the similar things that need to be done in C.
> > > 
> > > Jussi
> > 
> > Yes, the original topic was arrays (objects) in a structure. To help clarify 
> > for the OP, I gave examples of what did or did not need to be explicitly 
> > initialized in a structure. Brian's response was to make a false statement 
> > which, to help prevent confusion, needed to be corrected.
> > 
> > The statement, "When you do a  mstrct = new mystruct it creates the structure 
> > with null pointers for those fields," does not refer to what happens in C. And,
> >  "those fields," obviously refers to "strings and arrays". As I explained, the 
> > strings would be automatically initialized, but the arrays would not.
> > 
> > Is there anything incorrect about the following statement?
> > Simple native datatypes (such as String, Integer, Boolean) will be 
> > automatically initialized. But, objects (such as String[], Integer[],
> >  Boolean[]), which are objects of classes and have properties and methods, 
> > must be initialized with the NEW keyword.
> > 
> > -- 
> > Lee
> > 
> > ----[ http://gambaswiki.org/wiki/doc/netiquette ]----
> ------- End of Original Message -------
> 
> If I have a structure that contains many array variables, etc.
> If I need to do NEW on every variable that is an array
> Why do I need it inside the structure?
> Is there a way in NEW once to execute on all variables?
> 
> Thanks
> 
> ----[ http://gambaswiki.org/wiki/doc/netiquette ]----
------- End of Original Message -------

Hello

Maybe on purpose as long as you don't set NEW to the array then it remains empty
For example:
Public var_01 AS String[]

As long as I don't make NEW is NULL
But there is an option to make a statement
Public var_01 AS New String[]

In the structure he does not allow to do
public struct ami_response
   string As String
   event_list As New String[]
End Struct

Thank you


More information about the User mailing list