On Mon, 19 Dec 2011 07:04:20 -0500, Bear <joanylepri...@yahoo.fr> wrote:
Using D1, I have a program that creates tons of float[] ; for performance reasons, I would like them to be uninitialized. I've tried replacing float[] f = new float[x]; by float[] f = cast(float[])std.gc.malloc(x*4);
this is wrong. a float[] slice is actually a struct, whereas gc.malloc returns a pointer.
What you have done is cast a pointer into a pointer+length struct, leaving anyones guess as to what the length is set to. I don't even know why this compiles...
A slice is a pointer + length, and you can slice a pointer to "add a length" to it. Follow bearophile's suggestion.
However f[] = float.nan; solved the problem, but kinda defeats the purpose of using malloc... What am I doing wrong?
If this works, it's not doing what you think :) -Steve