|
179 / 69 / 13
Регистрация: 22.12.2015
Сообщений: 2,648
|
|||||||||||
Как объявить массив с переменной размерностью?01.06.2018, 10:11. Показов 3058. Ответов 12
Метки нет (Все метки)
Всем здравствуйте.
Возможно ли это как-то обойти? Вариант "объявить массив с запасом, а потом резать" не очень привлекает.
0
|
|||||||||||
| 01.06.2018, 10:11 | |
|
Ответы с готовыми решениями:
12
Объявить класс, содержащий одномерный целочисленный массив размерностью 10, индексатор для работы с этим массивом |
|
Модератор
|
|
| 01.06.2018, 10:38 | |
|
2
|
|
|
Практикантроп
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
|
|
| 01.06.2018, 10:56 | |
|
Кстати, по ходу вопрос возник: если такой массив организовывать в "куче" - напр. в каком-то обработчике, - то размер ограничен максимальным размером этой самой кучи. Причём компилятор скромно об этом умалчивает, а неприятности начинаются при работе программы, точнее - в "обработчике" (программа просто "сваливает" без всяких сообщений). Это можно обойти, делая массив общей переменной. Вопрос: а если в обработчике добавить к определению массива static , будет ли он организован в основной области (без такого ограничения размера)?
И на эту же тему... - я недавно попробовал "прокачивать" большие массивы (текстовый файл в несколько десятков мегабайтов) через MemoryStream, и обнаружил, что при размере файла порядка 24 и более Мб линкер начинает возмущаться.
1
|
|
|
Супер-модератор
|
||
| 01.06.2018, 11:13 | ||
|
1
|
||
|
Практикантроп
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
|
||||||
| 01.06.2018, 11:32 | ||||||
|
По поводу MemoryStream, - это я не корректно поставил вопрос.
Работая с MemoryStream создаю два байтовых массива:
Пардон, если изложил туманно. Добавлено через 1 минуту п.с. массивы bu11, bu22 оба в глобальной области. Добавлено через 2 минуты п.с.с. Хотелось бы понимать, с чьим размером это связано? Размеры стэка, кучи, страниц памяти, ресурсы среды программирования...?
1
|
||||||
|
Супер-модератор
|
||
| 01.06.2018, 11:35 | ||
Как работая? Почему нельзя привести компилябельный обработчик нажатия на кнопку, который можно вставить и проверить, а вместо этого приходится подключаться к карме, считывать оттуда информацию, как оно было реализовано. А сегодня, как назло, у них там в КармаNet-е сбои какие-то. Никак соединение не устанавливается...
1
|
||
|
Практикантроп
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
|
|||||||||||
| 01.06.2018, 11:48 | |||||||||||
|
Да там в обработчике много лишнего, чтоб ... . Да и дело скорее всего инициализации массива и только (на MemoryStream я зря грешил).
Вот такое начало программы__ Кликните здесь для просмотра всего текста
1
|
|||||||||||
|
Практикантроп
4841 / 2726 / 534
Регистрация: 23.09.2011
Сообщений: 5,798
|
||||||
| 01.06.2018, 12:29 | ||||||
|
Ну, вот, - простым языком (по другому я не умею)... я ставлю по 25 (30, 40...) млн chars в объявлении этих двух массивов
char bu11[25000000]; ... Компилирую и запускаю программу. Диспетчер задач показывает около 16 Мбайт занятого места. Потом жму на кнопку с таким обработчиком__ Кликните здесь для просмотра всего текста
Что нужно иметь в виду, играясь с большими объемами? Хотелось бы понять.
1
|
||||||
|
179 / 69 / 13
Регистрация: 22.12.2015
Сообщений: 2,648
|
|||||||||||
| 01.06.2018, 17:22 [ТС] | |||||||||||
|
volvo, обращаюсь как у модератору. Перестали приходить письма с уведомлениями о том чта на поднятый вопрос кто-то откликнулся! Что делать?
Небольшой дополнительный вопрос:
Но, всё работает и вот так:
0
|
|||||||||||
|
Супер-модератор
|
|
| 01.06.2018, 17:26 | |
|
Во втором случае никакого выделения памяти нет, описывается указатель на массив структур, и его нужно будет натравить на какой-то участок памяти, выделенный где-то в другом месте другими средствами, чтобы он (этот участок) интерпретировался, как массив структур (это то, как я тебе показывал в одной из предыдущих тем).
А в первом случае - выделяется участок памяти, достаточный для хранения n структур.
1
|
|
|
179 / 69 / 13
Регистрация: 22.12.2015
Сообщений: 2,648
|
|
| 01.06.2018, 17:58 [ТС] | |
|
volvo,
Не по теме: Вы правы, нашёл два ответа в спаме, но только два?! Такого раньше вообще не было!
0
|
|
| 01.06.2018, 17:58 | |
|
Помогаю со студенческими работами здесь
13
Объявить массив? Запросто! Объявить массив массивов? А как это? Можно ли в сессионной переменной объявить массив?
Объявить массив из 10 целых чисел, поменять местами 5 элемент массива со значением переменной TWO=2 Как объявить имя новой переменной в new Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
|
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма).
На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
|
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ *
Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам
Кирхгофа, решает её и находит переходные токи и напряжения на элементах схемы. . . .
|
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым.
Но восстановить их можно так.
Для этого понадобится консольная утилита. . .
|
|
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
|
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11
— это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
|
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11
Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
|
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
|