我有一个函数,里面有malloc操作,然后返回他的oid* 指针,如:
void* fun();
void* b = fun();
却发现返回值b不是fun内部malloc返回的地址。
跟踪调试发现在 函数 fun 退出的时候 函数指针还正确,跟踪 寄存器 rax的值 也是正确的,但是当执行到
void* b = fun();之后,发现 b的值不正确。
我是多线程环境。
code
struct task* make_task_null()
{
struct task* t = (struct task*)malloc(sizeof(struct task));
clean_task(t);
return t;
}
void clean_task(struct task* t)
{
memset(t,0x00,sizeof(struct task));
}
fun()
{
strcut task* t = make_task_null();
}
MMMHUHU