內存對齊仍是須要重視的——XMMATRIX 爲例

最近研究 D3D,搜了一個教材跟着學:http://www.rastertek.com/dx11s2tut04.htmlhtml

用 x64 的配置運行,完美,過了幾天須要用 x86 測試,結果一運行,程序崩潰……測試

趕忙排查問題,x64 的 Debug、Release 都是能夠的,而 x86 則是 Debug 能夠,Release 纔會崩。htm

開發環境是 VS2015,編譯時曾經遇到一些錯誤和警告,是 UMU 本身消滅掉了,最後有一類警告應該是關鍵:開發

warning C4316: 'SystemClass': object allocated on the heap may not be aligned 16get

緣由是 XMMATRIX 須要 16 字節對齊,但代碼的做者把它塞在幾個類裏,而後去 new 這些類了……編譯

嘗試把這些類從 heap 改成 stack,問題解決!ast

八哥太多,不能輕易聽任警告!配置

相關文章
相關標籤/搜索