我构造的对象,像这样:为什么全局结构和成员变量(同一类型)的内存设置等于全局变量?
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'吗?或者你在调试器中倾销内存? –