What is the underlying reason for not being able to put arrays of pointers in unsafe structs in C#?

Posted by cons on Stack Overflow See other posts from Stack Overflow or by cons
Published on 2010-05-03T09:32:21Z Indexed on 2010/05/03 9:38 UTC
Read the original article Hit count: 413

Filed under:
|
|
|
|

If one could put an array of pointers to child structs inside unsafe structs in C# like one could in C, constructing complex data structures without the overhead of having one object per node would be a lot easier and less of a time sink, as well as syntactically cleaner and much more readable.

Is there a deep architectural reason why fixed arrays inside unsafe structs are only allowed to be composed of "value types" and not pointers?

I assume only having explicitly named pointers inside structs must be a deliberate decision to weaken the language, but I can't find any documentation about why this is so, or the reasoning for not allowing pointer arrays inside structs, since I would assume the garbage collector shouldn't care what is going on in structs marked as unsafe.

Digital Mars' D handles structs and pointers elegantly in comparison, and I'm missing not being able to rapidly develop succinct data structures; by making references abstract in C# a lot of power seems to have been removed from the language, even though pointers are still there at least in a marketing sense.

Maybe I'm wrong to expect languages to become more powerful at representing complex data structures efficiently over time.

© Stack Overflow or respective owner

Related posts about c#

Related posts about d