내부포인터가 뭐에요?

dbsthqkf의 이미지

void* rrr;
 
int main(void)
{
 
      rrr = strdup("bbb");
 
      rrr = ((char*)rrr)+1;
 
      return 0;
}

여기서 쓰인 내부포인터에 대해서 좀 설명해주세요 ㅠㅠ
내부포인터가 무엇인지 찾아봐도 그에대한 개념이 없어서..
내부포인터라는 말이 없는건가요

외국 사이트에서 interior pointer라고 표현하는데 이해가 잘 안되용

mirheekl의 이미지

http://stackoverflow.com/questions/11206582/what-is-the-difference-between-start-pointers-and-interior-pointers-and-when-to

딱히 자주 쓰이는 말 같지는 않은데... 이유는 사실 당연한것이라 굳이 따로 말할 일이 많지 않아서요.

저 글에 의하면, 내부 포인터는 malloc등으로 외부적으로 얻어낸 메모리 블럭 안에 있는 주소들을 말하는것 같습니다.

개념적으로 보면, 여러 오브젝트에 대한 메모리를 할당받을 때 각각 따로 받는게 아니고 통채로 하나만 받아서 그걸 쪼개서 쓰면 그것이 내부 포인터가 되겠지요. 실제 메모리 주소와는 관계없이 말이죠.

코드 블럭을 보면 strdup이 메모리 주소를 rrr에 리턴할테고 두번째 줄에서 그 rrr의 주소가 변하니 그것부터 내부포인터라 할수있을 듯 합니다.

--

cinsk의 이미지

처음 들어보는 표현이네요.

ymir의 이미지

저도 처음 들어 보는 표현이네요.

찾아 보니 MSDN 의 C++/CLI 에 interior_ptr 이라고 별도로 내부 포인터가 따로 정의되어 있는 것 같네요.
http://msdn.microsoft.com/ko-KR/library/y0fh545k.aspx

어쨌든 C 코드를 예로 들기에는 적합하지 않은 키워드 같습니다.

되면 한다! / feel no sorrow, feel no pain, feel no hurt, there's nothing gained.. only love will then remain.. 『 Mizz 』