Это зависит от языка, библиотеки, операционной системы.
Для массива в памяти, который большинство языков предлагает по умолчанию, верхний предел - это адресное пространство, предоставленное процессу. Для Windows это 2 или 3 ГБ для 32-разрядных приложений, а для 64-разрядных приложений - меньше 8 ТБ и (физический объем ОЗУ + ограничение размера файла подкачки).
Для пользовательской библиотеки, использующей дискпространство для (очень медленного) доступа к массиву, пределом, вероятно, будет размер самого большого тома хранилища. С дисками RAID и объемом более 10 ТБ это может быть очень большое число.
Когда вы знаете предел памяти для массива, верхний предел количества элементов равен (размер памяти / элемента). Фактический предел часто будет меньше, если элемент маленький, так как для адресации массива могут использоваться 32-разрядные целые числа без знака, которые могут адресовать только элементы размером 4 ГБ.
Это для простых смежных типизированных массивов, предлагаемых такими языками, какC ++. Такие языки, как PHP, где вы можете определить a['hello'] = 'bobcat'; a[12] = 3.14;
, больше похожи на карты и могут использовать гораздо больше памяти на элемент, поскольку они хранят значение для индекса