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

天下

記錄修行的印記

pin_ptr 和 interior_ptr

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


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

在托管擴(kuò)展中,“釘住指針”是通過使用 __pin 關(guān)鍵字限定指針聲明來聲明的。下面是一個(gè)來自托管擴(kuò)展規(guī)范的經(jīng)過略微修改的示例:

  復(fù)制代碼 
__gc struct H { int j; };

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

在新的語言設(shè)計(jì)中,釘住指針是使用類似于內(nèi)部指針的語法來聲明的。

  復(fù)制代碼 
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 天下 閱讀(1124) 評(píng)論(0)  編輯 收藏 引用 所屬分類: C/C++C#

<2025年9月>
31123456
78910111213
14151617181920
21222324252627
2829301234
567891011

導(dǎo)航

統(tǒng)計(jì)

常用鏈接

留言簿(4)

隨筆分類(378)

隨筆檔案(329)

鏈接

最新隨筆

搜索

最新評(píng)論

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            亚洲乱码国产乱码精品精 | 国产精品亚发布| 一本色道久久综合亚洲91| 亚洲国产精品悠悠久久琪琪| 久久免费高清视频| 99国产欧美久久久精品| 99视频在线精品国自产拍免费观看| 国产精品国色综合久久| 久久精品国产免费| 嫩草影视亚洲| 亚洲欧美高清| 久久久久久9| 一区二区三区精密机械公司 | 欧美日韩一区二区在线 | 91久久久久久久久久久久久| 亚洲精品极品| 国产亚洲精品7777| 亚洲国产欧美在线| 国产日韩欧美精品一区| 欧美高清不卡在线| 国产精品美女在线观看| 欧美大片一区二区| 国产精品亚洲综合久久| 欧美激情小视频| 国产精品一区二区黑丝| 欧美福利视频在线| 国产日韩欧美精品| 日韩视频在线一区二区三区| 好看的日韩视频| 亚洲一区免费网站| 99xxxx成人网| 久久人91精品久久久久久不卡 | 国产一级久久| 亚洲视频大全| 99www免费人成精品| 久久久噜噜噜久久久| 性高湖久久久久久久久| 欧美片网站免费| 美女任你摸久久| 国产精品一区二区久久| 亚洲精品中文字幕在线观看| 精品成人久久| 欧美亚洲自偷自偷| 午夜老司机精品| 欧美日韩一区二区欧美激情| 亚洲国内自拍| 亚洲国产精品一区| 久久久999成人| 欧美在线视频一区二区| 欧美日韩综合精品| 亚洲人成免费| 亚洲伦理中文字幕| 蜜桃久久精品乱码一区二区| 欧美ab在线视频| 一区精品在线| 开元免费观看欧美电视剧网站| 久久久不卡网国产精品一区| 国产精品一区=区| 亚洲综合视频网| 欧美精品v国产精品v日韩精品| 老牛国产精品一区的观看方式| 国产精品永久免费观看| 亚洲一区在线看| 午夜在线视频观看日韩17c| 国产精品99一区二区| 99re热这里只有精品视频 | 国产一区二区毛片| 香蕉久久国产| 久久久久免费观看| 在线观看日韩一区| 六月天综合网| 亚洲黄色小视频| 一区二区三区波多野结衣在线观看| 欧美喷水视频| 亚洲午夜激情| 久久久久9999亚洲精品| 在线观看av不卡| 欧美人成在线| 亚洲一区精品电影| 久久夜色精品国产欧美乱极品| 影音先锋成人资源站| 欧美韩日一区二区| 中文网丁香综合网| 久久躁狠狠躁夜夜爽| 99视频精品免费观看| 国产精品扒开腿做爽爽爽视频| 欧美一区激情| 亚洲国产精彩中文乱码av在线播放| 999亚洲国产精| 国产日韩欧美精品综合| 麻豆精品国产91久久久久久| 日韩亚洲欧美中文三级| 久久精品成人一区二区三区蜜臀| 精品999日本| 欧美日韩精品二区| 欧美在线网址| 亚洲欧洲视频在线| 久久精品国产99国产精品澳门| 136国产福利精品导航| 欧美日韩久久不卡| 久久久久国产精品午夜一区| 亚洲精品乱码久久久久久日本蜜臀| 久久se精品一区精品二区| 亚洲精品久久久久中文字幕欢迎你| 欧美三级电影网| 久久综合狠狠综合久久综青草 | 欧美日本不卡高清| 久久精彩视频| 亚洲性视频h| 最新亚洲电影| 久久野战av| 欧美在线关看| 亚洲一区观看| 99re66热这里只有精品4| 国产自产在线视频一区| 欧美三级视频在线| 欧美h视频在线| 久久久久久午夜| 香港久久久电影| 亚洲一区日韩| 中文精品视频| 99精品欧美一区二区三区综合在线| 免费不卡中文字幕视频| 久久久7777| 欧美制服第一页| 午夜国产精品视频| 亚洲免费在线| 亚洲天堂第二页| 亚洲毛片av在线| 亚洲精品日韩在线| 亚洲国产日韩综合一区| 在线观看日韩| 亚洲国产精品视频| 亚洲国产欧美不卡在线观看| 在线观看久久av| 亚洲国产成人精品久久久国产成人一区 | 欧美精品一区视频| 欧美va亚洲va日韩∨a综合色| 久久久久高清| 久久久久久午夜| 嫩草伊人久久精品少妇av杨幂| 久久只精品国产| 免费影视亚洲| 欧美激情第3页| 欧美另类亚洲| 欧美性片在线观看| 国产精品性做久久久久久| 国产女人水真多18毛片18精品视频 | 一本大道久久a久久综合婷婷| 亚洲美女少妇无套啪啪呻吟| 日韩亚洲国产精品| 亚洲一区二区三区影院| 久久福利资源站| 免费欧美高清视频| 欧美日韩精品在线| 国产精品欧美日韩一区二区| 国产午夜亚洲精品羞羞网站| 精久久久久久久久久久| 亚洲精品一区二区三区99| 亚洲视频999| 久久精品国产亚洲aⅴ| 卡一卡二国产精品| 亚洲人体大胆视频| 亚洲一区二区三区777| 欧美资源在线| 欧美高清在线一区| 国产精品视频精品视频| 精品动漫av| 中文精品视频| 久久久一区二区三区| 亚洲国产女人aaa毛片在线| 亚洲夜晚福利在线观看| 麻豆成人综合网| 国产精品福利在线观看| 在线电影国产精品| 亚洲淫性视频| 欧美福利视频在线| 亚洲男人的天堂在线| 欧美va天堂va视频va在线| 国产精品一区二区三区免费观看 | 日韩午夜av在线| 久久国产精品一区二区| 亚洲国产另类精品专区| 先锋影院在线亚洲| 欧美色精品天天在线观看视频| 精品电影在线观看| 欧美影视一区| 一本大道久久a久久精品综合 | 中文高清一区| 欧美国产一区视频在线观看| 国产欧美日韩三级| 亚洲一二三区在线| 欧美国产一区二区三区激情无套| 亚洲一区观看| 欧美日韩亚洲一区二区三区| 在线日韩av永久免费观看| 欧美中文字幕久久| 在线一区二区三区四区| 欧美精品激情| 亚洲人成网站在线观看播放|