I would like to define an array of array eg int[][] on top of an existing int[] of the right size. I want then to seamlessy use either the int[][] array of array or the int[] ‘big’ array while refering to the same inner data.
Is this possible to do this in C# using unmanaged code? In C++ I would defined pointers like this :
int* bigArray = new int[numberOfRows * numberOfColumns];
int** matrix = new int*[numberOfRows];
for (int i = 0; i < numberOfRows; i ++)
{
matrix[i] = (bigArray + i * numberOfColumns);
}
Yes, you can also use pointer in C#, but there are some limits on it. 1st, you need to declare the function with unsafe, and also, you need to set the build option to allow unsafe code in the project property, here is the sample code about it:
Remember, you can use the pointer only if you are so clear of that you have full control of your code. while it is not recommend you use the pointer in C#