-1
我在初始化结构指针时遇到了一些问题。初始化结构指针
struct Hook{
DWORD64 Address;
vector<BYTE> OriginalBytes;
vector<BYTE> HookBytes;
SIZE_T length;
bool Initialized;
};
Hook *hFuncHook;
void InitializeHookInfo(Hook* hook, DWORD64 address, SIZE_T size){
hook = new Hook;
hook->Address = address;
hook->OriginalBytes = GetAOB(address, size);
hook->HookBytes.reserve(size);
hook->length = size;
hook->Initialized = false;
}
void EndHookInfoInit(Hook* hook, DWORD64 address, SIZE_T size){
printf("Hook size: %i\n", sizeof(hook)); //returns 8
hook->HookBytes = GetAOB(address, size);//Crash right there
hook->Initialized = true;
}
void InitMyHooks(){
InitializeHookInfo(hFuncHook, mBase + 0xA100FC, 6);
HookFunction(...);
EndHookInfoInit(hFuncHook, mBase + 0xA100FC, 6);
}
我不明白为什么这个崩溃。 InitializeHookInfo部分不会导致任何问题,但EndHookInfoInit只是崩溃。
卸下hook->HookBytes = GetAOB(...);
也导致系统崩溃
提示:通过引用 – SomeWittyUsername
什么语言传递参数的这段代码应该是在?它看起来像C,但拼错了“malloc”? – kfsone
@kfsone'vector'在一个结构定义里面在C中是非法的 –