String[] pointer to void* and back

seany via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Thu Sep 18 14:35:49 PDT 2014


Yes, thank you, I corrected that.

However, if this v is a member of a class, like



import std.stdio;
import std.conv;
import core.vararg;

struct S
   {
     void *v;
   }

class C
{


   S* sx = new S;

   void dothings()
   {
      string[] ss = ["1", "2", "4"];
      string[] *s;
      void *vv;

      s = &ss;
      vv = s;

      sx.v = vv;

   }

}


void main() {

      C c = new C;
      c.dothings();
      writeln("done");

      string[]* sh;
      sh = cast(string[]*)c.sx.v;
      writeln(sh);        // upto this, works, the same pointer as 
set in
                          // c.dothings(), checked with write 
instructions

      string[] si = *sh;
      writeln(si);
}



and then casted back, then i notice that it does not work. 
Wondering why.



More information about the Digitalmars-d-learn mailing list