On Wed, 20 Feb 2013 03:03:49 -0500, Lubos Pintes <lubos.pin...@gmail.com>
wrote:
Hi,
I want to allocate a buffer which I use in a function which reads data
from socket.
So I did as a first line in that function:
static char[] buffer=new char[4096];
The compiler (2.062) complained that it cannot evaluate new char[] at
compile time.
I Then tried to move the declaration before function, the same thing
happened. Allocating statically sized array bloats the executable.
My idea is to return only a slice of array if less than 4K data was read
and prevent new allocation on every read.
So what I am doing wrong or is this not possible?
Thank.
What about a fixed sized array? That won't even incur a heap allocation
cost, and makes the function reentrant:
char[4096] buffer = void; // use = void to ensure the compiler doesn't
initialize the buffer to all 0xff
-Steve