我的代码得到以下错误:
CChatClient.exe中0x00b09736处的未处理异常:0xC0000005:访问冲突读取位置0x00000002。
我无法发布整个代码,因此粘贴了错误发生的代码部分..
> static void run_thread(void *args)
{
CThreadRunnable *pRunnable = static_cast<CThreadRunnable*>(args);
int* actual_arg = (int *)args;
if (*actual_arg)
{
PRINTD "value of arg=" << *actual_arg << std::endl;
pRunnable->run(actual_arg);
}
}
在第5行,运行时异常即将到来。 我无法在visual studio 10上调试此错误。 有人可以帮忙,如何在visual studio编译器上调试这种错误。
谢谢, 拉文德拉古普塔
答案 0 :(得分:3)
if (*actual_arg)
如果此行导致错误,则actual_arg为2,您尝试将其作为指针处理并取消引用它。您不能查看内存地址2并获取访问冲突。
猜猜,我会说你把你的变量而不是它的地址传递给了函数。
编辑:
你的签名错了。
static void run_thread(void *args)
Correct将是
static DWORD run_thread(void* args)
答案 1 :(得分:0)
转到Debug-&gt;例外。检查两个“系统运行时异常”的复选框(名称可能是其他内容,我不记得确切的名称)。