int *a; // указатель на начало массива
теперь им можно пользоваться, но если заблаговременно его не "настроить", писать данные будешь непонятно куда и это вызовет ошибку
a[1456]=100; // Ошибка!!!!
int[] b=new int[10];a=&b[5];
a[-2]=100; // Вполне нормальная запись :) хотя с# на нее ругается
PS: любую ругань всегда можно обойти
https://ideone.com/YjDQuJ
Массив задается пользователем
И длина зависит только от него
C#