[Gambas-user] Arrays of Structs - how to - and curious debug message
Benoît Minisini
g4mba5 at gmail.com
Thu Jun 10 22:17:48 CEST 2021
Le 10/06/2021 à 21:10, John Anderson a écrit :
> I've come across an issue I'm trying to solve in Gambas. I KNOW I'm
> doing this wrong, and I'm being dumb - but maybe somebody can point the
> way. I can't find any more deets online, and the examples about structs
> are kind of scarce. But that's not the interesting part...what's
> interesting is how Gambas decides to NOT flag an error, but maybe I have
> that wrong too.
>
> ...too much text to read at 22 PM
>
1) Please compress your project archives when you post on the mailing-list.
2) Apparently you didn't read the wiki page on structure declarations.
https://gambaswiki.org/wiki/lang/structdecl
Especially the last paragraph "Arrays of structure".
If you declare that:
Public Struct Foo
A As Integer
B As Boolean
C As String
End
Private $aArray[16] As Struct Foo ' Note the Struct keyword before Foo
Then $aArray will be an array of sixteen Foo structures allocated in one
slot successively in memory, like the C language does.
For Gambas, $aArray is a special variable of type "array of structure".
It's not a real array, so you will not have all the methods of the
standard Array class. It's really for send it to some C code.
Note that a structure declaration can be used like a class with just
public variables. It's what you did when declaring:
Dim var As New StructureName
In other words:
As StructName -> declare a pointer to a structure allocated like a
normal object.
As Struct StructName -> embeds a structure directly inside a variable or
another structure, like C does by default.
So be careful!
If you find the wiki page not clear enough, do not hesitate to fix it.
--
Benoît Minisini
More information about the User
mailing list