Depends. In VC6++ the memory is usually initialized differently depending on if it's
- a debug build
- a release build
- you're using a tool like BoundsChecker
But in VC6 debug build at least some memory is always set to 0 or cdcdcdcd or other fixed values. This is one of the caused of "works in debug, fails in release."
Also, regardless of the initial values, some stack corruption bugs like setting x[5] = 20 when you've only allocated 5 elements ( int x[5] ) will keep corrupting the stack the same way every time.