ガベージコレクションされたヒープから要素の配列を割り当て、生のポインターを介してのみそれらの要素にアクセスしたいと思います。ガベージコレクターは、それを指すために使用されたすべてのポインターがスコープ外になった後(前ではなく)にそのメモリブロックを再利用できますか?
私はこのようにすることを考えていました:
{
int* ptrToArray1 = (new int[](100)).ptr;
int* ptrToArray2 = ptrToArray1;
int* ptrToArray3 = ptrToArray1 + 10;
ptrToArray1 += 50;
ptrToArray2 += 99;
*ptrToArray1 = 123;
*ptrToArray2 = 456;
*ptrToArray3 = 789;
ptrToArray1 -= 42;
ptrToArray2 -= 24;
//... and so on ... Is the array data guaranteed to be there?
}
// Now that all the pointers are out of scope, can the
// garbage collector reclaim the memory block of that array?