V Tue, 26 Jan 2016 14:20:29 +0000 Igor via Digitalmars-d-learn <digitalmars-d-learn@puremagic.com> napsáno:
> I have successfully malloc'ed an object but when I go to free it > in the destructor I get an exception. The destructor simply has > > ~this() // destructor for Foo > { > core.stdc.stdlib.free(&this); > } > > > auto buffer = core.stdc.stdlib.malloc(__traits(classInstanceSize, > App))[0..__traits(classInstanceSize, App)]; > auto app = cast(App)emplace!App(buffer[]); > > I tried to retain a ptr to buffer and free that but still no > good. I also get a depreciation warning that &this is not an > lvalue. Hopefully I don't have to keep a ptr around to this > simply to free it and avoid future issues? > > So how am I suppose to free an object? > > core.stdc.stdlib.free(cast(void *)this);