On Thursday, 11 February 2016 at 04:07:18 UTC, cy wrote:
The following program segfaults for me, compiling it with
dmdv2.070 as well as the latest git. I must be doing it wrong.
There's a way to specify class construction, or emplace, or
something. But I can't find it! How do I deal with arrays of
objects?
class A {
int stuff;
}
void main()
{
A[] as = new A[2];
assert(as.length==2);
as[0].stuff = 42;
}
Looking at it in gdb, the program segfaults on "A[] as = new
A[2]" and never reaches "as[0].stuff = 42". But removing
"as[0].stuff = 42" causes the program to stop segfaulting!
assert(as.length == 2) doesn't get reached either.
You've allocated space for two class references, but you haven't
actually allocated any class instances. This means both as[0] and
as[1] are null, hence your segfault.