【发布时间】:2011-10-24 17:15:03
【问题描述】:
class Register
{
private:
DWORD ax,dx,cx,bx; // POH
DWORD bp,sp;
DWORD flag, ip;
public:
//====================================================
Register()
{
ax = 0x0;
dx = 0x0;
cx = 0x0;
bx = 0x0;
bp = 0x0;
memset(&this->sp,0,sizeof(sp));
sp = 0x0;
flag = 0x0;
ip = 0x0;
}
//====================================================
~Register()
{
}
//====================================================
void setAx(DWORD d)
{
ax=d;
}
//====================================================
void setDx(DWORD d)
{
dx=d;
}
//====================================================
void setCx(DWORD d)
{
cx=d;
}
//====================================================
void setBx(DWORD d)
{
bx=d;
}
//====================================================
void setBp(DWORD d)
{
bp=d;
}
//====================================================
void incSp()
{
sp = sp+1;
}
void decSp()
{
if(sp == 0)
{
sp = 0;
}
sp = sp - 1;
}
//====================================================
void setFlag(DWORD d)
{
flag=d;
}
//====================================================
void setIp(DWORD d)
{
ip=d;
}
//====================================================
DWORD getAx()
{
return ax;
}
//====================================================
DWORD getDx()
{
return dx;
}
//====================================================
DWORD getCx()
{
return cx;
}
//====================================================
DWORD getBx()
{
return bx;
}
//====================================================
DWORD getBp()
{
return bp;
}
//====================================================
DWORD getSp()
{
return this->sp;
}
//====================================================
DWORD getFlag()
{
return flag;
}
//====================================================
DWORD getIp()
{
return ip;
}
//====================================================
};
为什么当我使用 getSp();函数如下:
PReg->getSp();
它给了我一个 AV 错误,我在初始化它的时候跟踪了这个变量,它给了我一个零的随机数,我将它设置为并且在问题函数点,sp 变量是“???? " ?
Register *PReg; - PReg :)
【问题讨论】:
-
为什么你对待 SP 的方式与其他的不同?你如何分配你的
PReg? -
你能告诉我们声明
PReg的代码吗? -
如何声明
Register的实例? -
没人能帮我吗?
-
您是否真的为指向寄存器
PReg的指针赋值?如果不是,那么它就是垃圾,可能会导致访问冲突。
标签: c++ c++builder access-violation