对于以下代码,本质上,我们在 ObjectiveC 中调用 C 函数(funca 和 funcb)并使用 C 指针 pX。出于某种原因,我们在调用 funcb 时点击了 EXC_BAD_ACCESS,我们认为这可能与 pX 被释放或其他一些内存问题有关。所以问题是,这里可能出了什么问题?如果真的是因为那个 pX 提前发布了,我们怎么能修复它呢?就像这种情况一样,在 ObjectiveC 中做 C 的一般做法是什么?
。H
@interface MyObject : NSObject {
X *pX;
}
.m
// calling funca and get the value pX properly set
if (funca(&pX) != 0) {
// error;
}
// use the pX returned from funca
funcb(pX, ...);