|
half-horse half-gateway
117 / 83 / 43
Регистрация: 10.05.2016
Сообщений: 563
|
|||||||||||
Указание определенного адреса памяти для указателя29.10.2020, 19:56. Показов 3398. Ответов 16
Метки нет (Все метки)
Добрый день всем. Сидел, баловался с памятью и вдруг задумался: а можно ли указатель определять на конкретный адрес? Чтобы было понятнее, вот примерный простенький код:
0
|
|||||||||||
| 29.10.2020, 19:56 | |
|
Ответы с готовыми решениями:
16
Динамическое указание адреса указателя выделение памяти при увеличении адреса указателя на размерность int Указание лимита памяти для приложения |
|
76 / 68 / 10
Регистрация: 11.07.2016
Сообщений: 320
|
|
| 29.10.2020, 20:08 | |
|
Ты пытаешься из списка сделать массив. Зачем?
0
|
|
|
"C with Classes"
|
|||
| 29.10.2020, 20:14 | |||
Сообщение было отмечено BlackStoneBlack как решение
Решениеlist + 1 разместил int(80), так делать нельзяДобавлено через 2 минуты BlackStoneBlack, если хочешь с памятью играть по правилам, то сначала нужно большой кусок в куче выделить, потом уже как тебе угодно эту память раздавать Добавлено через 1 минуту
1
|
|||
|
half-horse half-gateway
117 / 83 / 43
Регистрация: 10.05.2016
Сообщений: 563
|
|||||
| 29.10.2020, 20:48 [ТС] | |||||
|
0
|
|||||
|
Вездепух
12931 / 6799 / 1820
Регистрация: 18.10.2014
Сообщений: 17,211
|
||||||||
| 29.10.2020, 20:55 | ||||||||
list + 1? Там нет памяти.
0
|
||||||||
|
76 / 68 / 10
Регистрация: 11.07.2016
Сообщений: 320
|
||
| 29.10.2020, 21:08 | ||
|
0
|
||
|
half-horse half-gateway
117 / 83 / 43
Регистрация: 10.05.2016
Сообщений: 563
|
|||
| 29.10.2020, 21:29 [ТС] | |||
0
|
|||
|
Комп_Оратор)
|
|||
| 30.10.2020, 00:08 | |||
|
То есть, этот список не совсем список. Совсем не список, вернее. Это массив в динамической памяти. Если я правильно понял, о каком списке в шарпе идёт речь. Добавлено через 5 минут О более новом List<T> из System.Collections.Generic https://docs.microsoft.com/en-... etcore-3.1 они пишут похожее нечто:
0
|
|||
|
2670 / 1333 / 479
Регистрация: 08.11.2016
Сообщений: 3,683
|
||
| 30.10.2020, 11:42 | ||
Сообщение было отмечено BlackStoneBlack как решение
РешениеСуть списка - последовательный доступ к элементам и в этом разрезе список работает быстрее массива, поскольку взятие следующего элемента осуществляется по уже хранимому в памяти указателю против вычисления следующего адреса в массиве. Суть массива - произвольный доступ к элементам и в этом массив выигрывает у списка ибо для обращения к элементу массива нужно лишь вычислить адрес элемента против прохода от головы/хвоста/сохраненной текущей позиции до требуемого элемента. Вывод: если алгоритм подразумевает последовательный обход элементов, то выбирайте список, если же алгоритм требует постоянного обращения к элементам по произвольным индексам - выбирайте массив. Например: большинство алгоритмов сортировки для списка будут быстрее чем для массива, но за эту скорость приходится платить памятью для хранения помимо данных еще и указателей связывающих элементы списка, массивы же не требуют дополнительной памяти (то есть они легче) и выборка элементов по индексам для них дешевле. Собственно потому, например, очереди и стэки предпочтительнее строить на списках, а ассоциативные контейнеры на массивах. Если же так велико желание получить преимущества обоих вариантов, то более верным подходом будет использование чего-то одного, а в случаях когда будут уместны преимущества второго построить это второе на основе первого. Например: в некоем приложении работаете со списком поскольку в основном требуется последовательный доступ, но возникает ситуация когда требуется многократно выполнить серию операций требующих произвольного доступа, тогда выпускаете на основе списка массив указателей на его элементы и выполняете обработку - по мере надобности массив можно уничтожать и выпускать заново.
1
|
||
|
76 / 68 / 10
Регистрация: 11.07.2016
Сообщений: 320
|
||
| 30.10.2020, 20:40 | ||
|
0
|
||
|
Вездепух
12931 / 6799 / 1820
Регистрация: 18.10.2014
Сообщений: 17,211
|
|||
| 30.10.2020, 20:52 | |||
|
Вычисление следующего адреса в массиве - на порядки (!) более легкая и эффективная операция, чем тяжеленное чтение готового значения указателя на следующий элемент из памяти. Более того, последовательный доступ к массиву астрономически боле эффективен еще и потому, что элементы массива гарантированно расположены один за другим в памяти, что делает массив идеальной кэш-дружественной структурой данных. Для списка этого не гарантируется, что в общем случае просто убивает эффективность последовательного прохода по списку.
0
|
|||
|
Комп_Оратор)
|
|
| 30.10.2020, 21:31 | |
|
Annemesski, не горюйте. Список видит своих защитников) Мы им ответим. Так вот например:
Сколько список не корми, а у него итераторы всегда валидны.То есть: Удаляй не удаляй, а всё равно получишь - валидный итератор. Но нельзя путать лист с шарпом. У них ilist не лист ienumerable не 'энумерабле. Крибле- крабле и те списки, что ArrayList и List<T> на поверку массивы (внутренне). Это наверное, чтобы ни кто не догадался. А списки у них живут во в таких местах: https://docs.microsoft.com/en-... etcore-3.1 LinkedList<T> - о -как !
0
|
|
|
2670 / 1333 / 479
Регистрация: 08.11.2016
Сообщений: 3,683
|
|
| 30.10.2020, 21:55 | |
|
TheCalligrapher, TheCalligrapher, как на счет вычисления и разыменования? Или в массивах указатели разыменовывать не надо?
0
|
|
|
Вездепух
12931 / 6799 / 1820
Регистрация: 18.10.2014
Сообщений: 17,211
|
||
| 30.10.2020, 22:32 | ||
|
Однако, еще раз, как я сказал выше, в массиве разыменование в общем случае намного более эффективно, ибо массив лежит в памяти последовательно, т.е. обладает идеальнейше дружественным поведением по отношению к процессорному кэшу и к механизмам prefetch. А это один из самых важных факторов эффективности. 2. "Вычисления"? Я же ясно сказал выше: вычисление адреса элемента массива - на порядки более эффективная операция, чем чтение указателя из памяти.
0
|
||
|
2670 / 1333 / 479
Регистрация: 08.11.2016
Сообщений: 3,683
|
|||
| 30.10.2020, 23:05 | |||
|
Получается списки эффективнее только там где требуются вставки и удаления элементов и перемещения элементов в случаях хранения тяжелых объектов и все это при условии что остальные операции требуют преимущественно последовательный доступ к элементам, в противном случае даже для тяжелых объектов скорее массив указателей (в котором тоже будет два разыменования) окажется более эффективным. ПС: Ок, лучший ответ снимаю.
0
|
|||
|
Комп_Оратор)
|
||
| 31.10.2020, 00:58 | ||
0
|
||
| 31.10.2020, 00:58 | |
|
Помогаю со студенческими работами здесь
17
Относительное указание адреса на файл
указание адреса при загрузки изображения
Как закрыть все соединения для определенного IP адреса ? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым.
Но восстановить их можно так.
Для этого понадобится консольная утилита. . .
|
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
|
Сукцессия микоризы: основная теория в виде двух уравнений.
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
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
|
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/
O1rJuneU_ls
https:/ / vkvideo. ru/ video-115721503_456239114
|
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ВВЕДЕНИЕ
Введу сокращения:
аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
|