The following code seems to be producing a non-initialized array:
int num = 3; int * vals = new int[num]();
If I understand it correctly, according to C++98 5.3.4.15 (expr.new) and 8.5.5 (dcl.init), it should be zero-initialized.
Upon further investigating, I found that if "num" is a const (or integer literal), it does indeed get zero-initialized.
Debug and release builds.
CGT v7.4.7
CCS v5.5.0.00077
TMS320DM6435
I am doing a COFF build, and I have read that COFF does not zero-initialize, but I think that is addressing a different case (static allocation).
For what it's worth (not much), gcc and Visual Studio did zero initialize.
Attached is an example project.