0 / 0 / 0
Регистрация: 13.11.2017
Сообщений: 111
|
|
1 | |
Как создать массив с количеством элементов больше System.Int32.MaxValue?13.02.2023, 20:39. Показов 2005. Ответов 27
Метки нет (Все метки)
Как можно создать массив в C# .NET 6.0 с количеством элементов выше, чем значение System.Int32.MaxValue? При попытке создать массив длиной uint.MaxValue выходит ошибка: "System.OverflowException: "Arithmetic operation resulted in an overflow.".
Как можно создавать большие массивы на C# длиной ulong.MaxValue? И можно ли вообще так сделать? И есть ли какие-либо готовые библиотеки для работы с массивами неограниченной длины (если ограничены только объемом RAM)?
0
|
13.02.2023, 20:39 | |
Ответы с готовыми решениями:
27
Создание задержки Task.Delay(...) более чем на Int32.MaxValue миллисекунд Как создать массив с неизвестным количеством элементов Почему массив B выводится System.Int32[] Метод Graphics.DrawLine(Int32, Int32, Int32, Int32) Узнать координаты всех точек данной прямой |
51 / 15 / 7
Регистрация: 09.02.2014
Сообщений: 209
|
|
13.02.2023, 20:57 | 2 |
0
|
0 / 0 / 0
Регистрация: 13.11.2017
Сообщений: 111
|
|
13.02.2023, 21:04 [ТС] | 3 |
Хотя бы длиной ulong.MaxValue
0
|
3683 / 2594 / 719
Регистрация: 02.08.2011
Сообщений: 6,964
|
|
13.02.2023, 21:33 | 5 |
Можно создать свой IEnumerable, под капотом которого будет связный список из массивов, суммарно по кол-ву элементов превышающих int.MaxValue.
Не уверен, можно ли ulong переменную использовать в качестве индексатора, на крайняк можно в виде метода оформить.
1
|
0 / 0 / 0
Регистрация: 13.11.2017
Сообщений: 111
|
|
13.02.2023, 21:58 [ТС] | 6 |
0
|
0 / 0 / 0
Регистрация: 13.11.2017
Сообщений: 111
|
|
13.02.2023, 22:11 [ТС] | 8 |
0
|
4183 / 1061 / 87
Регистрация: 21.04.2013
Сообщений: 7,535
|
|
13.02.2023, 22:18 | 9 |
Мимо пробегал, для какой задачи нужна такая длинна массива?
0
|
0 / 0 / 0
Регистрация: 13.11.2017
Сообщений: 111
|
|
13.02.2023, 23:01 [ТС] | 10 |
Для лабы в ВУЗе нужно сделать разные сортировки и посчитать различные параметры у каждой сортировки. Одно из требований лабы - сделать с разным количеством элементов массива. Можно сделать в пределах миллиона или миллиарда, но хотелось бы проверить на большем количестве элементов, т.к. основной язык C#, то на нём и делаю. Изучать C, C++ для таких задач за пару дней не хотелось бы
0
|
4183 / 1061 / 87
Регистрация: 21.04.2013
Сообщений: 7,535
|
|
13.02.2023, 23:51 | 12 |
Обычно студенты ленивы. Сомневаюсь, что для лабы, которую сдал и забыл такое делать кто-то будет.
Упоминание С/С++ мне не очень понятно. Дело в том, что программы написанные на том или ином языке работают не в вакууме, а в операционной системе, где присутствует менеджер памяти и существуют механизмы выделения памяти. Иначе говоря, если в Windows методы выделения памяти строго детерминированы самой ОС, то какая разница какой язык выбирать с точки зрения выделения памяти? Методы выделения памяти Win32
0
|
0 / 0 / 0
Регистрация: 13.11.2017
Сообщений: 111
|
|
14.02.2023, 00:19 [ТС] | 13 |
Это да, поэтому вопросы возникли
Добавлено через 14 минут Ну ради интереса можно сделать, ибо потом в конце семестра будут вопросы на экзамене, проще заранее проверить эти тонкости. Если код C# выполняется в CLR, то на C можно без этой прокладки обойтись. У C# точно ограничение есть в плане работы CLR, проблемы с максимальным индексом массива. С си как-то попроще с этим. Памяти всё равно хватит, пусть даже оперативки будет недостаточно
0
|
1150 / 858 / 263
Регистрация: 30.04.2009
Сообщений: 3,598
|
|
14.02.2023, 00:50 | 14 |
Я тебя сейчас наверное удивлю, но даже в In-Memory базе данных для аналитики (Sql Server Analysis Services) ограничения количества данных крутятся вокруг 2^32.
Не занимался бы ерундой, а потратил бы время на освоение темы лабораторной. Больше толку бы было.
0
|
12550 / 8718 / 1311
Регистрация: 21.01.2016
Сообщений: 32,729
|
|
14.02.2023, 01:48 | 15 |
Никак. Читаем документацию:
2^31 .Ну, т.е. требования укусить себя за локоть у вас нет, это исключительно ваша хотелка, и плевать вам на ограничения среды?)
0
|
3564 / 2505 / 1174
Регистрация: 14.08.2016
Сообщений: 8,214
|
|
14.02.2023, 01:59 | 16 |
0
|
help
4576 / 4147 / 815
Регистрация: 13.04.2015
Сообщений: 9,105
|
|
14.02.2023, 08:04 | 17 |
Ну, справедливости ради, стоит отметить, что ниже есть абзац
И там уже Добавлено через 6 минут Имхо, преподаватель задал ТС-у провокационный вопрос, чтобы стимулировать шевеление мозговой извилины.
0
|
12550 / 8718 / 1311
Регистрация: 21.01.2016
Сообщений: 32,729
|
|
14.02.2023, 08:08 | 18 |
Это в многомерном массиве всего. Но в каждой размерности не более
Int32.MaxValue , но суммарно не более UInt32.MaxValue .Мутная формулировка, согласен. Но ограничение вполне конкретное. Ну и gcAllowVeryLargeObjects влияет только на размер (в байтах) всего массива целиком, а не на количество элементов в нём.
2
|
323 / 190 / 45
Регистрация: 25.08.2011
Сообщений: 1,261
|
|
14.02.2023, 09:22 | 20 |
Новая версия хрома чтоли??
Ну а вообще может неуправляемое выделение делать?? Но тогда нужен будет свой менеджер какой нибудь.
0
|
14.02.2023, 09:22 | |
14.02.2023, 09:22 | |
Помогаю со студенческими работами здесь
20
Как правильно создать массив с заданным в ручную количеством элементов в массиве Не удалось привести тип объекта "<>f__AnonymousType0`6[System.Int32,System.String,System.String,System.String,Stri Невозможно выполнить операцию 'Like' над System.Int32 и System.String. Невозможно выполнить операцию 'Like' над System.Int32 и System.String Не удалось привести тип объекта System.Int32 к типу System.String" Дан массив С(Х). Заменить элементы, значение которых больше 7, количеством четных элементов этого массива Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Блоги программистов | |||||
Как использовать GraphQL в C# с HotChocolate
Programming 05.01.2025
GraphQL — это современный подход к разработке API, который позволяет клиентам запрашивать только те данные, которые им необходимы. Это делает взаимодействие с API более гибким и эффективным по. . .
|
Модель полного двоичного суматора с помощью логических операций (python)
AlexSky-coder 04.01.2025
def binSum(x:list, y:list):
s=^y]
p=x and y
for i in range(1,len(x)):
s. append((x^y)^p)
p=(x and y)or(p and (x or y))
return s
x=list()
y=list()
|
Это мы не проходили, это нам не задавали...(шестибитный асихронный счётчик с управляющим сигналом задержки).
Hrethgir 04.01.2025
Асинхронный счётчик на сумматорах (шестиразрядный по числу диодов на плате, но наверное разрядов будет больше - восемь или шестнадцать, а диоды на старшие), так как триггеры прошли тестирование и. . .
|
Руководство по созданию бота для Телеграм на Python
IT_Exp 04.01.2025
Боты для Телеграм представляют собой автоматизированные программы, которые выполняют различные задачи, взаимодействуя с пользователями через интерфейс мессенджера. В данной статье мы рассмотрим,. . .
|
Применение компонентов PrimeVue в Vue.js 3 на TypeScript
BasicMan 04.01.2025
Введение в PrimeVue и настройка окружения
PrimeVue представляет собой мощную библиотеку компонентов пользовательского интерфейса для Vue. js 3, которая предоставляет разработчикам богатый набор. . .
|
Как стать Senior developer
cpp_developer 04.01.2025
В современной индустрии разработки программного обеспечения позиция Senior Developer представляет собой не просто следующую ступень карьерной лестницы, а качественно новый уровень профессионального. . .
|
Что известно о дате выхода Windows 12 и чего от нее ждать
IT_Exp 04.01.2025
В мире технологий постоянно происходят изменения, и операционные системы не являются исключением. Windows 11, выпущенная в октябре 2021 года, принесла множество инноваций и улучшений, но. . .
|
Что новенького в .NET Core 9
Programming 04.01.2025
Обзор ключевых изменений в . NET Core 9
Платформа . NET Core продолжает активно развиваться, и версия 9 представляет собой значительный шаг вперед в эволюции этой технологии. Новый релиз. . .
|
Инструкция по установке python3.13.1 в Debian 12
AlexSky-coder 03.01.2025
sudo apt update
sudo apt install build-essential zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libreadline-dev libffi-dev
wget. . .
|
Затестил триггеры. архив проекта прилагаю с GOA файлами в настройках архиватора проектов.
Hrethgir 03.01.2025
В этот раз нет закольцованности, потому что от неё только глюки, как я понял, логика не вырезанная. Триггеры очень быстрые если верить измерениям с помощью анализатора от Gowin.
Есть ещё регистры,. . .
|
Python в помощь DevOps
IT_Exp 03.01.2025
Причины использования Python в работе DevOps
Python стал неотъемлемой частью мира DevOps, и это не случайно. Этот язык программирования обладает множеством преимуществ, которые делают его. . .
|
Angular vs React vs Vue.js
BasicMan 03.01.2025
О, друзья-разработчики и просто любопытные читатели! Сегодня мы отправимся в увлекательное путешествие по миру фронтенд-разработки, и первой остановкой станет Angular – этакий строгий немецкий. . .
|