С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
63 / 63 / 39
Регистрация: 18.11.2016
Сообщений: 562

Как правильно указать начальный адрес для динамического (обычного) массива?

04.01.2019, 18:16. Показов 1573. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Предположим у меня есть динамически выделяемый массив
C++
1
int *ptr0 = new int[10];
Данный массив мне нужно разместить по конкретно указанному адресу. Как это сделать?
ПС.
Нужно, так как работаю с МК.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
04.01.2019, 18:16
Ответы с готовыми решениями:

как правильно указать адрес?
вот решил вступить на неровный путь адсенса. думаю, почитав форум, обязательно возникнут трудности с получениями всяких там пин-кодов,...

Скорость работы std::vector и обычного динамического массива
Всем привет! Есть задача по мат.моделированию, размер сетки 100х50. Использовались обычные динамические массивы: double ***n; ...

Правильно ли, как для начинающего, начать с обычного копипаста
Хочется не убить время в пустую на изобретение велосипеда. Просмотрел кучу сайтов на тематику гадания, сонники, гороскопы. Дело в том что...

7
Падаван С++
 Аватар для obivan
447 / 261 / 89
Регистрация: 11.11.2014
Сообщений: 916
04.01.2019, 18:32
Photofenix, честно точного ответа не знаю, но есть варик написать кастомный алакатор, который резервирует заранее всю имеющуюся память, а в нем уже как то по адресу задавать где выделяется, вообще поидее это должны делать системные функции, которые работают с памятью, допустим в винде VirtualAlloc

Добавлено через 1 минуту
Photofenix, возможно есть в доке по определнному МК в его функциях, посмотрите там
1
63 / 63 / 39
Регистрация: 18.11.2016
Сообщений: 562
04.01.2019, 19:07  [ТС]
Я уже задавал схожу тему, только со структурами. Там мне подсказали, как указать изначальный адрес.
Как создать прототип структуры с конкретно указанным адресом и смещением?
Как работать с памятью МК я знаю, но приходится это делать напрямую. Хотелось бы просто выделить определенный массив и чтобы данный массив хранил информацию в определенном месте памяти.
0
Мозгоправ
 Аватар для L0M
1745 / 1039 / 468
Регистрация: 01.10.2018
Сообщений: 2,138
Записей в блоге: 2
04.01.2019, 21:17
Photofenix, адрес назначается точно также, как и со структурами. И никакого new не надо.
C++
1
int *ptr0 = (int *)0x40000000U;
1
Падаван С++
 Аватар для obivan
447 / 261 / 89
Регистрация: 11.11.2014
Сообщений: 916
05.01.2019, 02:11
L0M, тут вопрос в том не перезапишет ли случайно new эту же область память, и есть да, то помимого этого есть ли права на чтение запись в страницу памяти, возможно я полность не прав, а возможно если прав то UB
1
Мозгоправ
 Аватар для L0M
1745 / 1039 / 468
Регистрация: 01.10.2018
Сообщений: 2,138
Записей в блоге: 2
05.01.2019, 16:05
Цитата Сообщение от obivan Посмотреть сообщение
тут вопрос в том не перезапишет ли случайно new эту же область память
Вопрос тут более глобальный: как вообще происходит управление памятью. МК, как я понимаю, это микроконтроллер. Т.е. в приципе известно где и как располагаются в памяти области программы, стека, регистров ввода/вывода и проч. В том числе и область свободной памяти.

Поэтому для избежания упомянутой вами коллизии, надо либо не использовать динамическое распределение памяти вообще и пользоваться свободной памятью в "ручном" режиме, либо делать, как вы уже упомянули, кастомную систему управления свободной памятью.

Обычно вопрос про назначение точного адреса массиву или структуре возникает, когда этот массив или структура должны накрыть регистры управления и ввода/вывода, отображённые на конкретные адреса в памяти. Возможно компилятор "знает" какие адреса относятся к свободной памяти, а какие к регистрам. Тогда такой вопрос вообще снимается.
1
"C with Classes"
2022 / 1404 / 523
Регистрация: 16.08.2014
Сообщений: 5,885
Записей в блоге: 1
05.01.2019, 16:27
Цитата Сообщение от Photofenix Посмотреть сообщение
Данный массив мне нужно разместить по конкретно указанному адресу.
Placement new
0
143 / 92 / 34
Регистрация: 30.01.2018
Сообщений: 469
06.01.2019, 00:59
C++
1
2
3
4
5
6
int *p;
p=new int[2];
p=(int*)0x7fffffffdcf0;
p[0]=1;
p[1]=2;
delete []p;
Пробежался отладчиком, так вроде по адресу размещается
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
06.01.2019, 00:59
Помогаю со студенческими работами здесь

Не получается адрес динамического двумерного массива передать, как аргумент функции
/* Лабораторная работа №3 Во всех вариантах необходимо написать три функции, которые будут вызываться из функции main(). Первая...

Как определить начальный ойпи-адрес
Провайдер Интернета получил диапазон адресов сетей класса С: Конечный IP-адрес 192.24.31.254 (11000000 00011000 00000111 00001000). ...

Как указать адрес для ресурса(файла XML) в Struts?
Подскажите как указать адрес для ресурса(файла XML) в Struts. Это файл анализируется в javabean классе потом. Как это делать в сервелете...

Как правильно освобождать память от динамического массива
Изучаю освобождение памяти. (тестю на XE7) У меня есть динамический массив Button'ов, объявленный в глобальных переменных (не только...

Описать дальнюю процедуру OUTARR8, которой передается начальный адрес знакового байтового массива и число элем
Есть задача: Есть решение: include io.asm S segment stack DB 256 DUP(?) S ends D segment


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Восстановить юзерскрипты 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% до. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru