在与 C/C++ 库集成时,IOS 表现异常。
在 AppDelegate 中调用:
在 AppDelegate 中调用:
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_BACKGROUND,0), ^{
[[ABCService sharedInstance] abcInitialize];
});
abcInitialize在c++库中定义。
struct abc *top;
top = calloc(TYPE_SERV,size_of(struct abc));
top->us = server_alloc (...certain_params...);
在服务器内部,我做了结构体struct1和struct2的分配。然后,在Initialize函数中,我尝试进行访问。
top->us = calloc(TYPE_US, size_of(struct us));
if(top->us->struct1) //do something
我发现我的结构体struct1总是为空
当我调试时,我可以看到该结构已经被正确分配并且值已经设置好了,但在函数返回之前,内存会自动释放。 这完全令人困惑和烦恼。 有人能帮我理解发生了什么吗?
我尝试关闭ARC,但仍然没有改变
top
指针分配内存,但是却给us
成员赋值了(top->us = ...)。 - John Tracid