在Microsoft Visual Studio 2010中使用sockaddr_storage时,有人遇到过内存损坏的情况吗?这是种代码,我有问题:当使用sockaddr_storage时,Visual Studio会破坏内存
class Base
{
public:
Base(){a=1};
int a;
sockaddr_storage addr;
int b;
};
class Derived1 : public Base
{
public:
Derived1() {a=2};
int c;
}
class Derived2 : public Derived1
{
public:
Derived2() {a=3;};
int d;
}
在Derived2的构造方法的偏移量为“A”中的对象是4个字节关闭和设定“a”到3个腐化存储器。
Regards, Dusan Mudric。
请提供一个完整的,自包含的示例来演示该问题。 – 2012-07-12 18:11:15
究竟是什么让你认为存在内存损坏。你可以添加来自Visual Studio的错误或消息的文本,如果有的话? – 2012-07-12 18:12:21
我拆开了代码并检查了内存。汇编代码在Derived2中的'a'的偏移量不同于Base中的偏移量。我可以看到Derived2在错误的内存位置设置了'a'的值。 – user1521589 2012-07-12 18:29:49