testing if data is allocated on the stack or heap
Steven Schveighoffer
schveiguy at yahoo.com
Tue Oct 17 23:59:19 UTC 2017
On 10/17/17 7:32 PM, flamencofantasy wrote:
> On Tuesday, 17 October 2017 at 17:27:17 UTC, Biotronic wrote:
>> On Tuesday, 17 October 2017 at 15:33:02 UTC, drug wrote:
>>> [...]
>>
>> I have very little knowledge about sbrk, so here's my solution.
>>
>> Tested on win32 and win64.
>>
>> [...]
>
> Try this;
>
> unittest {
> int[5*1024] n;
> int* p = new int;
>
> assert(n.onStack);
> assert(!p.onStack);
> }
The second is wrong. You are asserting that the storage of p is not on
the stack, but it is.
What p *points at* is not on the stack.
So the correct call should be:
assert(!(*p).onStack);
or (IMO) less ugly: assert(!onStack(*p));
-Steve
More information about the Digitalmars-d-learn
mailing list