Afternoon all,
a little help if you please. In order to circumvent the 2Gb object limit in .NET I have made a class that allocates memory on the heap and this allows me to create arrays up to the limit of my free RAM. However, for ease of development (as it was a proof of concept) it was hard coded for longs. Now that it works I've been trying to alter the code to use generics so I can use the same code for multiple types.
In allocating the memory and correctly index the array I need an array of pointers of the same type that the array will hold i.e. a long array needs long*[] myLargeArray
. The problem is when I use generics this declaration becomes T*[] myLargeArray
, which always produces the error 'Cannot take the address of, get the size of, or declare a pointer to a managed type ('T')'
Thanks in advance.
PS Before anyone asks, yes I really do need such large arrays.
Code example for a 2D array:
LargeArray <int> myArray = new LargeArray<int>(x, y);
public unsafe class LargeArray where T : struct
{
...
private T*[] tArr;
...
public LargeArray(long sizeI, long sizeJ)
{
...
myLargeArray = new T*[sizeI];
...
}
}