2009-11-25 1 views
0

나는 내 아이폰의 dev 코드에 단순한 경고가 있습니다.캐스트없이 정수에서 포인터를 만듭니다

NSUInteger *startIndex = 20; 

이 코드가 작동,하지만 난 경고가 : 캐스트없이 도움을

감사 정수의 포인터를 만드는

경고 : 'setStartIndex'의 인수 하나를 전달합니다.

답변

4

경고는 거의 모두를 말한다 : 당신이 정수 리터럴 20포인터를 NSUInteger-입니다 startIndex을, 초기화하는있다. 정수 자체를 어딘가에 저장할 공간을 할당해야합니다.

그것은 당신이 원하는 것은 더이 같은 것을 할 수있다 :

NSUInteger *startIndex = malloc(sizeof(NSUInteger)); 
*startIndex = 20; 

또는 VAR 이름 주어진 아마도

static NSUInteger startIndex = 20; 
NSUInteger *startIndexPtr = &startIndex; 

그러나, 그것은 당신이 또한 의미를 뒤범벅 될 수 있습니다 보인다 조금만, 아마 정말로 원하는 :

NSUInteger startIndex = 20; 
1

NSUInteger는 스칼라 유형 (typedef unsigned int NSUInteger;으로 정의)입니다. (당신이 NSUInteger에 대한 포인터를 전달해야하는 경우 또는 &와 시작 인덱스) 직접 나중에 사용할 수 있습니다

NSUInteger startIndex = 20; 

님의 코드를 수정합니다.