2012-07-12 4 views
1

나는적인 Cocos2D-2.0-RC2-X-2.0.1이CCArray "액세스 위반 읽기 위치"

.H

... 
protected: 
CCArray *array; 
... 

통화 당 월 2012 (29) @ 썼다 사용하고

... 
bool HelloWorld::init() 
{ 
... 
array= CCArray::create(2); 
array->addObject(obj1); 
array->addObject(obj2); 
... 
} 

void HelloWorld::ccTouchesBegan(CCSet* touches, CCEvent* event) 
{ 
    CCLog("%i", array->count()); 
} 
... 

및이 있습니다. 0xC0000005 : "0xfeeefeee"위치를 읽는 액세스 위반입니다.

에서 CCArray.cpp

unsigned int CCArray::count() 
{ 
    return data->num; 
} 

하십시오, 도움이됩니다.

+0

이 0xfeeefeee와 같은 매직 넘버는 대개 할당 해제 된 객체 또는 범위를 벗어난 문제를 가리 킵니다. 예를 들어, malloc guard와 다른 디버깅 설정은 버퍼 덮어 쓰기를 탐지하기 위해 그러한 패턴을 사용합니다. – LearnCocos2D

답변

4

는 생성 후

array->retain() 

를 호출하려고합니다. 어쩌면 배열은 당신이 그 기능을 떠난 후에 자동으로 다시 시작됩니다.

하지만 완료 한 후에는 반드시 해제해야합니다.

0

또한이 작업을 수행 할 수 있습니다

array = new CCArray(); 
array->initWithCapacity(3); 

create()autorelease 위해 CCObject를 반환합니다.

관련 문제