青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

天下

記錄修行的印記

pin_ptr 和 interior_ptr

CLR語法中,值類型指針分為兩種類型:V*(限于非 CLR 堆位置)和內部指針 interior_ptr<V>(允許但不要求托管堆內的地址)。


釘住指針
通常,在壓縮階段,垃圾回收器可選擇將駐留在 CLR 堆上的對象移動到堆內的不同位置。這種移動對于跟蹤句柄、跟蹤引用和內部指針而言不是問題,它們都透明地更新這些實體。但是,如果用戶在運行時環境外傳遞了 CLR 堆上對象的地址,這種移動就會導致問題。在這種情況下,對象的不穩定運動可能導致運行時失敗。要避免此類對象的移動,必須在本地將它們釘在自己的位置上以供外部使用。

在托管擴展中,“釘住指針”是通過使用 __pin 關鍵字限定指針聲明來聲明的。下面是一個來自托管擴展規范的經過略微修改的示例:

  復制代碼 
__gc struct H { int j; };

int main() 
{
   H * h = new H;
   int __pin * k = & h -> j;
  
   // …
};
 

在新的語言設計中,釘住指針是使用類似于內部指針的語法來聲明的。

  復制代碼 
ref struct H
{
public:
   int j;
};

int main()
{
   H^ h = gcnew H;
   pin_ptr<int> k = &h->j;

   // …
}



interior_ptr
Declares a pointer to inside a reference type, but not to the object itself. An interior pointer can point to a reference handle, value type, boxed type handle, member of a managed type, or to an element of a managed array. 
cli::interior_ptr<cv_qualifier type> var = &initializer;

Remarks
A native pointer is not able to track an item as its location changes on the managed heap, which results from the garbage collector moving instances of an object. In order for a pointer to correctly refer to the instance, the runtime needs to update the pointer to the newly positioned object.

An interior_ptr represents a superset of the functionality of a native pointer. Therefore, anything that can be assigned to a native pointer can also be assigned to an interior_ptr. An interior pointer is permitted to perform the same set of operations as native pointers, including comparison and pointer arithmetic.

An interior pointer can only be declared on the stack. An interior pointer cannot be declared as a member of a class.

Since interior pointers exist only on the stack, taking the address of an interior pointer yields an unmanaged pointer.

interior_ptr has an implicit conversion to bool, which allows for its use in conditional statements.

For information on how to declare an interior pointer that points into an object that cannot be moved on the garbage-collected heap, see pin_ptr.

interior_ptr is in the cli namespace. See cli Namespace for more information.


//Example
// 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);
}

 


 

posted on 2015-12-21 17:11 天下 閱讀(1130) 評論(0)  編輯 收藏 引用 所屬分類: C/C++ 、C#

<2015年12月>
293012345
6789101112
13141516171819
20212223242526
272829303112
3456789

導航

統計

常用鏈接

留言簿(4)

隨筆分類(378)

隨筆檔案(329)

鏈接

最新隨筆

搜索

最新評論

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            久久免费国产精品| 欧美伦理影院| 久久久精品一区| 欧美视频中文在线看 | 亚洲欧美日韩国产综合| 欧美韩日一区二区三区| 亚洲电影一级黄| 一区二区三区国产| 国产精品看片你懂得| 亚洲国产精品福利| 久久在线视频| 久久精品视频99| 国外成人在线视频| 久久久国产视频91| 欧美在线观看一区二区| 国产一区二区三区电影在线观看| 午夜国产精品视频免费体验区| 99精品视频免费在线观看| 欧美区日韩区| 久久aⅴ国产紧身牛仔裤| 欧美成人免费网| 亚洲精品黄色| 99成人在线| 国产精品sss| 午夜宅男久久久| 亚洲综合二区| 国产香蕉97碰碰久久人人| 久久av在线| 亚洲欧美韩国| 激情五月***国产精品| 欧美激情精品久久久六区热门| 免播放器亚洲一区| 亚洲一区二区三区午夜| 亚洲综合激情| 在线成人h网| 亚洲另类一区二区| 国产一区二区毛片| 亚洲第一精品福利| 欧美日韩国产黄| 亚洲国产成人精品女人久久久 | 一区二区三区日韩欧美| 久久免费偷拍视频| 一本一本久久a久久精品牛牛影视| 欧美插天视频在线播放| 午夜精品一区二区三区在线播放 | 国产精品久久久久久久久久ktv| av成人免费观看| 亚洲自拍16p| 在线观看日韩欧美| 亚洲精品国产精品国自产观看浪潮| 欧美日韩在线影院| 巨乳诱惑日韩免费av| 欧美片第一页| 久久精品一区二区三区中文字幕| 欧美.www| 久久精品卡一| 欧美精品免费在线| 欧美午夜不卡在线观看免费| 久久国产精品毛片| 欧美调教vk| 欧美高清成人| 国产精品毛片大码女人| 亚洲欧美日韩中文播放| 久久精选视频| 宅男精品视频| 亚洲国产综合视频在线观看| 亚洲小视频在线| 曰韩精品一区二区| 午夜精品电影| 亚洲午夜精品17c| 免费观看欧美在线视频的网站| 亚洲无线视频| 欧美91大片| 免费在线日韩av| 国产日韩欧美一区二区三区在线观看| 亚洲黄色尤物视频| 亚洲第一页自拍| 欧美在线高清| 久久久www成人免费精品| 欧美视频一区二区三区在线观看| 欧美大片在线观看一区| 国产综合一区二区| 欧美一级久久| 欧美一区二区三区播放老司机| 欧美日韩精品欧美日韩精品| 亚洲国产黄色片| 亚洲国产视频a| 久久综合久色欧美综合狠狠| 久久久免费av| 国产一区二区视频在线观看| 亚洲欧美视频一区二区三区| 午夜精品久久久久久久久| 欧美三级第一页| 99热在线精品观看| 亚洲天堂免费观看| 欧美亚男人的天堂| 亚洲午夜精品一区二区三区他趣| 夜夜嗨av一区二区三区四季av| 欧美精品久久99久久在免费线| 欧美国产亚洲视频| 亚洲精品系列| 欧美喷水视频| 在线亚洲一区| 欧美一区视频| 国产专区综合网| 久久免费视频这里只有精品| 欧美好骚综合网| 99这里有精品| 国产乱理伦片在线观看夜一区 | 欧美激情一区二区| 亚洲精品国产系列| 中文亚洲字幕| 国产欧美日本在线| 久久久久综合| 亚洲精品视频在线观看免费| 亚洲一区综合| 国产一区观看| 欧美成人综合网站| 中日韩高清电影网| 久久嫩草精品久久久精品| 亚洲国产欧美不卡在线观看| 欧美精品一区二区三区视频| 亚洲视频一区在线| 久久久视频精品| 亚洲作爱视频| 国产热re99久久6国产精品| 久久一二三国产| 日韩香蕉视频| 久久天天躁狠狠躁夜夜av| 亚洲精品专区| 久久国产一二区| 久久这里只有| 亚洲精品在线视频观看| 国产精品美女999| 巨胸喷奶水www久久久免费动漫| 亚洲破处大片| 久久午夜羞羞影院免费观看| 欧美v国产在线一区二区三区| 亚洲一级黄色| 国产精品久久久久久亚洲调教 | 亚洲伊人网站| 亚洲一区中文| 国产精品美女久久| 亚洲一区高清| 久久精品视频va| 葵司免费一区二区三区四区五区| 韩国美女久久| 久久综合久色欧美综合狠狠| 麻豆久久婷婷| 亚洲日本电影| 欧美日韩国产高清| 亚洲免费综合| 久久频这里精品99香蕉| 亚洲第一精品福利| 欧美日韩国产高清| 中文一区二区| 久久精品综合网| 最新亚洲激情| 欧美色欧美亚洲高清在线视频| 亚洲主播在线观看| 欧美成人激情视频| 亚洲婷婷在线| 韩国一区二区三区在线观看| 欧美+日本+国产+在线a∨观看| 亚洲人成网站999久久久综合| 亚洲综合导航| 1204国产成人精品视频| 欧美区国产区| 欧美综合国产| 亚洲精品久久| 狠狠色伊人亚洲综合网站色| 欧美影院成人| 亚洲国产日本| 午夜宅男欧美| 在线看片日韩| 国产精品久久久| 久热精品视频| 亚洲一区www| 亚洲电影毛片| 欧美在线视频导航| 亚洲精品影院| 国产一区二区三区在线观看精品 | 精品动漫一区| 欧美日韩精品免费观看| 欧美在线视频一区| 99re成人精品视频| 免费视频一区| 午夜一区不卡| 一区二区三区黄色| 激情久久久久| 国产精品午夜视频| 欧美日韩国产综合一区二区| 欧美夜福利tv在线| 一区二区三区精品视频| 一本久久综合亚洲鲁鲁| 国产在线精品自拍| 国产精品亚洲综合色区韩国| 欧美精品一区视频| 欧美69wwwcom| 猛男gaygay欧美视频|