what can be used instead of new[]?

The bug is more insidious than that. If you allocate memory, and then free it, it doesn't get freed correctly. Then you allocate a bit more and you might corrupt memory. It's not really to do with how much you allocate.

I think Andy Brown has a fixed library for the memory allocation. Try browsing his site for it.

I think you are fine if you just need to allocate and not free. For example, if you need to dynamically allocate "x" objects where you don't know what "x" is until runtime. But if you then free them, that's when the trouble starts (or might start).