這裏是我的代碼:奇怪的錯誤:EXC_BAD_ACCESS在我的課
typedef struct TItemSelector{
ItemSelectFrame* pItems[2];
} SItemSelector;
class item {
public:
void expMethod();
SItemSelector itemSelector_;
UILayerButton* startBtn_;
};
void item::expMethod(){
startBtn_ = new UILayerButton();
for (i = 0; i < 3; i++) {
itemSelector_.pItems[i] = new ItemSelectFrame();
}
startBtn_->callMethodA();
}
void UILayerButton::callMethodA()
{
this->callMethodB();
}
void UILayerButton::callMethodB()
{
}
在this->callMethodB();
,一個 「EXC_BAD_ACCESS」 occoured。
之後,我發現了一個變通辦法:
class item {
public:
void expMethod();
SItemSelector itemSelector_;
SItemSelector itemSelector2_; // work around
UILayerButton* startBtn_;
};
然後一切順利的話......我只是不知道發生了什麼,但callMethodB()
只是一個空方法,有什麼關係呢。
我正在使用Apple LLVM 3.1,默認設置。
更新:修復了我的代碼。
呃,關於EXC_BAD_ACCESS有什麼「奇怪的」?你在某處使用了一個無效指針。 (你在哪裏設置startBtn_?) – 2012-04-28 13:25:57
Sry我錯過了一條線,修復了。 @HotLicks – 2012-04-28 13:39:12
很難分辨你發佈的內容。你可以添加'UILayerButton'的定義嗎? – starbugs 2012-04-28 13:42:47