So I have the below program:

import std.stdio;

/* defines my awesome struct */
struct testStruct
{
        string aa;
        string bb;
}

/* creates(?) an empty array of structs */
testStruct[int] testStructArray;

void main()
{       
        string a = "a";
        string b = "b";

/*make a new struct */
        auto newStruct = new testStruct;
/* populate the values for the struct */
        newStruct.aa = a.dup;
        newStruct.bb = b.dup;

        writeln(newStruct.aa);
/* oddly if I remove the write to "bb" line, the aa line gives an error above user access */
        writeln(newStruct.bb);

/* this errors, claiming something about a pointer?? */
        testStructArray[1] = newStruct;
}

Running this my output says:
Error: cannot implicitly convert expression (newStruct) of type testStruct* to testStruct

So I have a couple of questions:
1) I'm assuming by the error that line 23 defines a pointer rather than a ... not-pointer thing. I'm not sure why it is doing that, and would like some explanation please. :) 2) Is this the best way to do what I am trying to do, which is dynamically grow an array of user defined structs?

TIA
Brian

Reply via email to