Using unsafe with arrays C# with Example



Using unsafe with arrays C# with Example

When accessing arrays with pointers, there are no bounds check and therefore no IndexOutOfRangeException will 
be thrown. This makes the code faster. 
Assigning values to an array with a pointer: 
class Program 
{ 
static void Main(string[] args) 
{ 
unsafe 
{ 
int[] array = new int[1000]; 
fixed (int* ptr = array) 
{ 
for (int i = 0; i < array.Length; i++) 
{ 
*(ptr+i) = i; //assigning the value with the pointer 
} 
} 
} 
} 
} 
While the safe and normal counterpart would be: 
class Program 
{ 
static void Main(string[] args) 
{ 
int[] array = new int[1000]; 
for (int i = 0; i < array.Length; i++) 
{ 
array[i] = i; 
} 
} 
} 
The unsafe part will generally be faster and the difference in performance can vary depending on the complexity of 
the elements in the array as well as the logic applied to each one. Even though it may be faster, it should be used 
with care since it is harder to maintain and easier to break. 

0 Comment's

Comment Form

Submit Comment