Free Trial

Safari Books Online is a digital library providing on-demand subscription access to thousands of learning resources.


  • Create BookmarkCreate Bookmark
  • Create Note or TagCreate Note or Tag
  • DownloadDownload
  • PrintPrint

void*

Anstatt auf einen bestimmten Werte-Typ zu zeigen, trifft ein Zeiger keine Annahmen über den Typ der zugrunde liegenden Daten. Dieses Vorgehen ist nützlich, wenn man direkt mit dem Speicher arbeiten muss. Es existiert eine implizite Konvertierung von jedem Zeiger-Typ auf void*. Ein void* kann nicht dereferenziert werden, ebenfalls sind keine arithmetischen Operationen möglich:

class Test
{
  unsafe static void Main()
  {
    short[ ] a = {1,1,2,3,5,8,13,21,34,55};
      fixed (short* p = a)
      {
        // sizeof liefert die Größe von Werte-Typen
        // in Byte zurück
        Zap (p, a.Length * sizeof (short));
      }
    foreach (short x in a)
      System.Console.WriteLine (x); // Gibt Nullen aus
  }

  unsafe static void Zap (void* memory, int byteCount)
  {
    byte* b = (byte*)memory;
      for (int i = 0; i < byteCount; i++)
        *b++ = 0;
  }
}

  

You are currently reading a PREVIEW of this book.

                                                                                        

Get instant access to over
$1 million worth of books and videos.

  

Start a Free Trial


  
  • Safari Books Online
  • Create BookmarkCreate Bookmark
  • Create Note or TagCreate Note or Tag
  • DownloadDownload
  • PrintPrint