does pointer refer to a heap object?
Brad Anderson
eco at gnuk.net
Sat Jul 27 11:07:09 PDT 2013
On Saturday, 27 July 2013 at 17:58:20 UTC, Carl Sturtivant wrote:
>
> Given a pointer to a struct, is there a clean way to determine
> if that struct is allocated on the heap or not? Or
> alternatively to determine whether it has finite or infinite
> lifetime (in TDPL speak)?
import core.memory, std.stdio;
struct A { }
void main()
{
A a;
auto ap = &a;
auto bp = new A;
writeln("ap", GC.addrOf(ap) ? "" : " not", " allocated with
the GC");
writeln("bp", GC.addrOf(bp) ? "" : " not", " allocated with
the GC");
}
Note that the heap is more than just GC allocated memory. C
malloc allocates on the heap but would fail the above test (as it
should).
More information about the Digitalmars-d-learn
mailing list