dynamically allocating on the stack

Cym13 cpicard at openmailbox.org
Sat Apr 21 13:30:55 UTC 2018


On Saturday, 21 April 2018 at 12:08:09 UTC, Dmitry Olshansky 
wrote:
> On Saturday, 21 April 2018 at 07:37:50 UTC, Mike Franklin wrote:
>> Does D have some way to dynamically allocate on the stack?  
>> I'm looking for something roughly equivalent to the following 
>> C code.
>>
>> int doSomething(size_t len)
>> {
>>     char stackBuffer[len + 1];
>>     doSomethingElse(stackBuffer);
>> }
>>
>
> Unbounded allocation on stack is kind of anti-pattern and a 
> potential DoS vector.

I'm having trouble seeing how unbounded heap allocations aren't 
equally a potential DoS vector.

> A separate region allocator is exactly as fast and can easily 
> survive across boundaries of function calls.

I guess if OP wants it on the stack it's because it doesn't need 
to survive across boundaries of function calls so this buys 
nothing in this case.

> Also you probably want something like char[X] = void;
>  for efficiency if allocating on stack.
>
>> Thanks,
>> Mike




More information about the Digitalmars-d-learn mailing list