我構造的對象,像這樣:爲什麼全局結構和成員變量(同一類型)的內存設置等於全局變量?
TestObj::TestObj(const TypedefStruct& myStruct) : m_memberStruct(myStruct){}
的結構是這樣的:
typedef struct{ short x; short y;} TypedefStruct;
。它是class TestObj
.`
公共成員當我比較全球myStruct
的記憶被傳遞到構造函數和TestObj
的m_memberStruct
成員變量,記憶的內容有所不同。
PS:我初始化全局結構,如下所示:TestObj::TypeDefStruct myStruct = {0};
我已閱讀,編譯器將有時墊的結構體的元素,使各元件的大小相同,並且可以與比較存儲器干擾一個全局結構和它的「副本」,但我不認爲這適用於這裏,因爲它是一個相同類型的兩元素結構...
任何洞察的情況?如果除了檢查兩個元素的值之外,我實際上無法比較內存,我仍然想知道爲什麼內存不同。
*如何*它們有什麼不同?你可以發佈兩個轉儲嗎? –
請顯示更多代碼。這似乎沒有理由發生。另外,這兩個版本的內存內容是什麼? –
你如何比較內存?你在程序中使用'memcmp'嗎?或者你在調試器中傾銷內存? –