다음을 통해 공유


interior_ptr(C++/CLI)

내부 포인터 개체 자체가 아니라 참조 형식, 내부 포인터를 선언 합니다.내부 포인터 핸들 참조, 값 형식의 boxed 형식 핸들, 관리 되는 형식의 멤버 또는 관리 되는 배열의 요소를 가리킬 수 있습니다.

모든 런타임

(모든 런타임에 적용 없음이 언어 기능에 대 한 설명입니다.)

Windows 런타임

(만 Windows 런타임에 적용 없음이 언어 기능에 대 한 설명입니다.)

y0fh545k.collapse_all(ko-kr,VS.110).gif요구 사항

컴파일러 옵션:/ZW

공용 언어 런타임

다음 구문 예제는 내부 포인터를 보여 줍니다.

y0fh545k.collapse_all(ko-kr,VS.110).gif구문

cli::interior_ptr<cv_qualifier type> var = &initializer;

y0fh545k.collapse_all(ko-kr,VS.110).gif매개 변수

  • cv_qualifier
    const 또는 volatile 한정자입니다.

  • type
    유형을 이니셜라이저.

  • var
    이름에 interior_ptr 변수입니다.

  • 이니셜라이저
    참조 형식, 요소는 관리 되는 배열 또는 네이티브 포인터를 할당할 수 있는 기타 모든 개체의 구성원입니다.

y0fh545k.collapse_all(ko-kr,VS.110).gif설명

네이티브 포인터는 관리 되는 힙에 가비지 수집기에서 개체의 인스턴스를 이동 위치 변경 항목을 추적할 수 없습니다.인스턴스를 올바르게 참조에 대 한 포인터에 대 한 순서로 런타임에서 포인터가 새로 배치 된 개체를 업데이트 해야 합니다.

interior_ptr 는 네이티브 포인터의 기능 집합을 나타냅니다.따라서 아무것도에 대 한 원시 포인터를 할당할 수 있습니다 또한 할당 될 수 있는 interior_ptr.내부 포인터 포인터 산술 비교를 포함 한 네이티브 포인터와 동일한 일련의 작업이 수행할 수 있습니다.

내부 포인터를 스택에 에서만 선언할 수 있습니다.내부 포인터를 클래스 멤버로 선언할 수 없습니다.

내부 포인터를 스택에 존재 하므로 내부 포인터의 주소를 관리 되지 않는 포인터를 얻을 수 있습니다.

interior_ptr암시적 변환에 있는 bool, 조건문에 사용할 수 있도록 합니다.

가비지 수집 된 힙에 이동할 수 없는 개체를 가리키는 내부 포인터를 선언 하는 방법에 대 한 자세한 내용은 >pin_ptr.

interior_ptrcli 네임 스페이스에 있습니다.자세한 내용은 Platform, default 및 cli 네임스페이스(C++ 구성 요소 확장)를 참조하십시오.

내부 포인터에 대 한 자세한 내용은 참조 하십시오.

y0fh545k.collapse_all(ko-kr,VS.110).gif요구 사항

컴파일러 옵션:/clr

y0fh545k.collapse_all(ko-kr,VS.110).gif예제

예제

다음 샘플에서는 선언 및 참조 형식에는 내부 포인터를 사용 하는 방법을 보여 줍니다.

// interior_ptr.cpp
// compile with: /clr
using namespace System;

ref class MyClass {
public:
   int data;
};

int main() {
   MyClass ^ h_MyClass = gcnew MyClass;
   h_MyClass->data = 1;
   Console::WriteLine(h_MyClass->data);

   interior_ptr<int> p = &(h_MyClass->data);
   *p = 2;
   Console::WriteLine(h_MyClass->data);

   // alternatively
   interior_ptr<MyClass ^> p2 = &h_MyClass;
   (*p2)->data = 3;
   Console::WriteLine((*p2)->data);
}

Output

  
  
  

참고 항목

개념

런타임 플랫폼의 구성 요소 확장