MSVC++ 은 struct 타입에 대해서 zero-fill 을 해주나요?

freezm7의 이미지

MSVC++ 은 struct 타입에 대해서 zero-fill 을 해주나요?

디버거로 봤을땐 해주는 듯 하지만,, 원래 0 으로 채워져 있었을 확률을 생각하면 확신이 안 드네요...

혹시 아시는 분?

Scarecrow의 이미지

자료형이 struct인지 유무와 관계없이
전역변수와 static 변수는 0으로 초기화 될겁니다.

drinkme의 이미지

전역변수와 static 변수 중의 초기값이 없는애들. 즉 ZI영역에 들어가는 놈들은
0으로 초기화됩니다.

cynicjj의 이미지

확실치 않지만 디버그 모드에선 안 하고, 릴리스 모드에선 해 줄겁니다. (확인 필요!!!)

그런데 그냥 코딩으로 초기화 하면 안 되남요?

drinkme의 이미지

ZI영역은 실행시 항상 0으로 초기화 됩니다.
release/debug 관계 없습니다.

release 버전에서는
비초기화된 지역변수에 대해서 아무런 조치도 안해주지만,
debug 버전에서는
debugging을 목적으로 자동으로 특별한 data (가령 0xCC)로 채웁니다.
물론, 이 설정은 변경가능합니다.