Stack frames larger than 4K should be rejected, but what if I want more
IGotD-
nise at nise.com
Mon Jun 28 12:21:07 UTC 2021
On Monday, 28 June 2021 at 11:39:27 UTC, SealabJaster wrote:
>
> Slightly related, but I was recently learning how to implement
> coroutines myself and it was crashing because MSCV's `printf`
> allocates a rather large buffer on the stack. Can't remember
> the exact size, but I'm pretty sure it was at least 4K.
>
> So in other words, you can't prove it for foreign functions I
> believe.
printf and conversion functions are usually a typical example of
functions that use large buffers on the stack. There is usually
no problem with this as rich OSes have plenty of virtual stack
space. If this wasn't allowed you would need to dynamically
allocate memory of every printf call if not several depending
what you print. This would slow down the printing function and
another problem for embedded systems/systems programming is that
you might want to print something before malloc/free are
initialized.
Big buffers on the stack is not always because the programmer is
an amateur.
More information about the Digitalmars-d
mailing list