[Gambas-user] Question on string[]

Benoit Minisini gambas at ...1...
Tue Dec 14 11:20:06 CET 2004


On Monday 13 December 2004 23:12, Laurent Carlier wrote:
> Le Lundi 13 Décembre 2004 15:19, Eilert a écrit :
> > Hi,
> >
> > I just found that it's possible to re-define a module-public string
> > array from within the same sub - is that allowed?
> >
> > static myArray as string[]
> >
> > sub myProcedure()
> > .
> > .
> > .
> >  myArray = new string[]
> > .
> > .
> >  myArray.Add(something...)
> > end sub
> >
> > So if I call myProcedure again, no complaint, and everything runs
> > through again like expected :-) But - what happens here? Is myArray made
> >   again, i. e. like REDIM or is a copy made? Buffer overflow...?
> >
> > Rolf
>
> The first myArray is a global variable, the second one is a local variable.
> In myProcedure sub, you have only access to the local one (as it have the
> same name !) and of course this one is destroyed at the end of the sub.

Mmm... No.

myArray points at a String[] object. At start, myArray is NULL. Each time you 
call myProcedure(), you create a new String[] object, and make myArray points 
at this new array object. The old one is destroyed, provided that no other 
variable has a reference on it.

Regards,

-- 
Benoit Minisini
mailto:gambas at ...1...




More information about the User mailing list