Introduction to unsafe code C# with Example
C# allows using pointer variables in a function of code block when it is marked by the unsafe modifier. The unsafe code or the unmanaged code is a code block that uses a pointer variable. A pointer is a variable whose value is the address of another variable i.e., the direct address of the memory location. similar to any variable or constant, you must declare a pointer before you can use it to store any variable address. The general form of a pointer declaration is: type *var-name; Following are valid pointer declarations: int *ip; /* pointer to an integer */ /* pointer to a double */ double *dp; float *fp; /* pointer to a float */ char *ch /* pointer to a character */ The following example illustrates use of pointers in C#, using the unsafe modifier: using System; namespace UnsafeCodeApplication { class Program { static unsafe void Main(string[] args) { int var = 20; int* p = &var; Console.WriteLine("Data is: {0} ", var); Console.WriteLine("Address is: {0}", (int)p); Console.ReadKey(); } } } When the above code wass compiled and executed, it produces the following result: Data is: 20 Address is: 99215364 Instead of declaring an entire method as unsafe, you can also declare a part of the code as unsafe: // safe code unsafe { // you can use pointers here } // safe code