• 欢迎访问开心洋葱网站,在线教程,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站,欢迎加入开心洋葱 QQ群
  • 为方便开心洋葱网用户,开心洋葱官网已经开启复制功能!
  • 欢迎访问开心洋葱网站,手机也能访问哦~欢迎加入开心洋葱多维思维学习平台 QQ群
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏开心洋葱吧~~~~~~~~~~~~~!
  • 由于近期流量激增,小站的ECS没能经的起亲们的访问,本站依然没有盈利,如果各位看如果觉着文字不错,还请看官给小站打个赏~~~~~~~~~~~~~!

C# 创建和访问指针数组的代码片段

OC/C/C++ 水墨上仙 2693次浏览

本代码演示了如何创建一个unsafe的指针数组记录struct的地址信息

class UnsafePointerArray
{
   public struct AStruct
   {
      public int anInteger;
   }
 
   public static void CreatePointerArray()
   {
      AStruct struct0 = new AStruct();
      AStruct struct1 = new AStruct();
      AStruct struct2 = new AStruct();
           
      unsafe
      {
         AStruct*[] StructPtrs = new AStruct*[3];
 
         // load addresses into pointer array
         StructPtrs[0] = 
         StructPtrs[1] = 
         StructPtrs[2] = 
 
         fixed (AStruct** ptrArrayStructPtrs = StructPtrs)
         {
            for (int i = 0; i < 3; i++)
            {
               ptrArrayStructPtrs[i]->anInteger = i * 2;
               Console.WriteLine ("&struct" + i + " = "   
                  + String.Format ("{0:x2}", (int) ptrArrayStructPtrs[i]));
               Console.WriteLine ("&struct" + i + ".anInteger = " 
                  + ptrArrayStructPtrs[i]->anInteger + "\n\n");
            }
         }
      }
   }
}

这段代码输出结果如下:

&struct0 = 3afec80
&struct0.anInteger = 0
&struct1 = 3afec7c
&struct1.anInteger = 2 
&struct2 = 3afec78 
&struct2.anInteger = 4


开心洋葱 , 版权所有丨如未注明 , 均为原创丨未经授权请勿修改 , 转载请注明C# 创建和访问指针数组的代码片段
喜欢 (0)
加载中……