[완료]포인터 관련 질문입니다.
글쓴이: parrier / 작성시간: 수, 2008/12/10 - 2:20오후
BOOL RLCcreate(U32 argc, U32 *argv)
와 같이 함수를 선언하였습니다.
그리고,
FrameType *entity=NULL; 로 선언을 해 둔 상태에서
RLCcreate(1, (U32*)&entity);를 수행하였습니다.
함수 내부적으로는
argv[0] = (RLCType *)malloc(sizeof(RLCType));
와 같이 선언하여, 함수 내에서 malloc을 통한 메모리 할당을 해주기로 하였습니다.
헌데 실행을 시키면,
C4047: unsigned int의 간접 참조 수준이 'RLCType *'과(와) 다릅니다.
라고 나오네요. 한다리 걸쳐서 메모리를 할당하겠다는 의미일 뿐인데 왜 이런 warning이 뜨는 것일까요?
한참을 노력해봤는데 안되네요. 이 퀴즈를 좀 도와주세요.
------------------------------------------------
FrameType *entity=NULL;
BOOL RLCcreate(U32 argc, U32 *argv){
argv[0] = (RLCType *)malloc(sizeof(RLCType));
return TRUE;
}
void main(void){
RLCcreate(1, (U32*)&entity);
}
------------------------------------------------
Forums:
포인터를 바꾸러면 포인터의 포인터를 써야 됩니다.
BOOL RLCcreate(U32 argc, U32 **argv)
{
*argv = (RLCType *)malloc(sizeof(RLCType));
...
}
이렇게 하시면 되지 싶은데요.
아... 기초의 부족이네요,.
답변 감사드립니다. 먼 옛날에 들어보았던 이중포인터...
그것이 이런 곳에서 쓰이는 것이었군요. 지금까지 알고만 있었지 쓴 일이 없어서
몰랐습니다.
감사합니다.
-_-v
댓글 달기