Help with multi-dimentional array
torhu
no at spam.invalid
Wed Jul 9 16:59:13 PDT 2008
Era Scarecrow wrote:
Now let me doublecheck once more. If i DID this.
>
> abc = new xyz[][](4,4); //Non-stack and GC handles it, or i can malloc
> abcd [4][4]xyz; //(Stack / non-Stack) static allocation
>
> I'll assume that
> 1) abcd is an array of 4 pointers that have 4 pointers each
> 2) It is not created by the GC, but instead resides on the Stack? (Please confirm)
You probably meant this:
xyz[4][4] abcd;
abcd is contiguous space for 16 xyz values, accessed as a
two-dimensional array. I'm not sure what you mean when you talk about
pointers, but unless xyz is a pointer type, there are not pointers
involved. Except that when passed to a function, static arrays are
passed as the address of the first element. This is all like in C.
And yes, it's allocated statically, or on the stack. Unless you put it
inside a struct, in which case you can allocate it in any way you like,
as part of a struct instance.
Docs on heap allocating dynamic arrays can be a little tricky to find:
http://www.digitalmars.com/d/1.0/expression.html#NewExpression
More information about the Digitalmars-d-learn
mailing list