0

正如标题所说,我有这个错误我将不胜感激帮助我我的代码在下面

这是在 BTscan.c

t_btmanager     *bt_accessor(t_btmanager *tmp)
{
static t_btmanager  *bt_tmp = 0;
if (tmp)
bt_tmp = tmp;
return (bt_tmp);
}

int bt_scan()

{
bt_accessor(0)->status = 1;  ////Here's the problem
printf("registering hooks ...\n");
return (0);
}

这个在 BTscan.h

typedef struct  s_btmanager
{
char        status;
}       t_btmanager;

谢谢你的帮助

4

1 回答 1

2

bt_tmp0将保持tmp原样0。所以它变成了NULL 指针,取消引用空指针bt_accessor(0)->status会导致异常。因为内存地址0x0是禁止访问的。

我不确定EXC_BAD_ACCESS异常来自哪里,但我猜它来自 Mach 内核虚拟内存管理器。

于 2013-04-01T05:25:59.053 回答