С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/21: Рейтинг темы: голосов - 21, средняя оценка - 4.57
30 / 47 / 19
Регистрация: 23.10.2014
Сообщений: 1,001

Выделение памяти под статический массив

12.11.2014, 22:52. Показов 3940. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
меня тут заинтересовали строки std::string, никто не обращал внимания что в отладчике (ну хз конечно у кого как, но у меня в msvs pro 2013 такое есть) видно именно посимвольно все символы строки, ну как в статических массивах бывает? так вот меня интересует как это сделано? ведь строки std::string само собой динамические, иначе в них бы вообще не было смысла... я подумал либо есть какой то способ запудрить компилятору мозги и выдать динамическую память за статическую, либо внутри std::string все таки задается какой то статический массив символов в который копируется исходная строка... короче как это работает?

з.ы. кстати такую же фигню я обнаружил и в других контейнерах, например в векторе...
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
12.11.2014, 22:52
Ответы с готовыми решениями:

Статический массив - динамическое выделение памяти!?
int n; cin >> n; int wtf; почему данная конструкция правильно работает? Это же статический массив?! или при...

Выделение памяти под массив
в массиве данных хранять в последовательных ячейках памяти В программе, выделенна память под массив, для ввода данных пользователем. ...

Выделение памяти под массив
Требуется выделить память под матрицу. Будет ли следующий код работать корректно? //глобальная область int x_size = 3; ...

8
30 / 47 / 19
Регистрация: 23.10.2014
Сообщений: 1,001
12.11.2014, 22:56  [ТС]
приложил скрин, чтоб было точно понятно что я имею ввиду
Миниатюры
Выделение памяти под статический массив  
0
30 / 47 / 19
Регистрация: 23.10.2014
Сообщений: 1,001
13.11.2014, 08:32  [ТС]
ап!
0
Вездепух
Эксперт CЭксперт С++
 Аватар для TheCalligrapher
12930 / 6798 / 1819
Регистрация: 18.10.2014
Сообщений: 17,202
13.11.2014, 08:38
Цитата Сообщение от Dark Byte Посмотреть сообщение
я подумал либо есть какой то способ запудрить компилятору мозги
Никакого отношения к компилятору это не имеет. Отображением такой информации занимается визуализатор отладчика. В последних версиях VS визуализатор - достаточно мощный программируемый механизм, который позволяет программировать такие трюки. Вот и все. Читайте доки.

Т.е. то, что вы видите на экране не имеет прямого отношения к физическому устройству объекта. Это просто красивая древовидная структурка, нарисованная специально заточенным на это скриптом. Никакого отношения ни к какой статической или динамической памяти это не имеет.
1
30 / 47 / 19
Регистрация: 23.10.2014
Сообщений: 1,001
13.11.2014, 09:20  [ТС]
TheCalligrapher, спасибо ясно, а можно самому так сделать? и как?
0
 Аватар для Kuzia domovenok
4268 / 3327 / 926
Регистрация: 25.03.2012
Сообщений: 12,531
Записей в блоге: 1
13.11.2014, 10:59
в окне memory можно ввести адрес своего массива и увидишь его содержимое побайтно подряд
0
30 / 47 / 19
Регистрация: 23.10.2014
Сообщений: 1,001
13.11.2014, 18:39  [ТС]
Цитата Сообщение от Kuzia domovenok Посмотреть сообщение
в окне memory можно ввести адрес своего массива и увидишь его содержимое побайтно подряд
нет, будет показывать только первый элемент массива
0
Вездепух
Эксперт CЭксперт С++
 Аватар для TheCalligrapher
12930 / 6798 / 1819
Регистрация: 18.10.2014
Сообщений: 17,202
13.11.2014, 18:47
Цитата Сообщение от Dark Byte Посмотреть сообщение
нет, будет показывать только первый элемент массива
Речь идет, как я понял, об окне Memory, где показывают содержимое памяти. Там видно все, хоть и не всегда в удобочитаемом виде. В окне же Watch можно смотреть содержимое своего массива через указатель , используя синтаксис 'array, [n]'. Сколько скажете в квадратных скобочках, столько элементов и покажет.

Только к данной теме это отношения прямого не имеет. Речь не об этом.
0
30 / 47 / 19
Регистрация: 23.10.2014
Сообщений: 1,001
13.11.2014, 19:02  [ТС]
Цитата Сообщение от TheCalligrapher Посмотреть сообщение
Речь идет, как я понял, об окне Memory, где показывают содержимое памяти. Там видно все, хоть и не всегда в удобочитаемом виде. В окне же Watch можно смотреть содержимое своего массива через указатель , используя синтаксис 'array, [n]'. Сколько скажете в квадратных скобочках, столько элементов и покажет.
хз уж что за Memory, я лично говорю исключительно об окне которое на скрине выше... твой способ работает, но интересно как его можно реализовать в своем классе? чтобы не набирать вручную каждый раз в контрольных значениях это, а автоматически выставлялось соответственно с количеством элементов (класс предоставит)
Цитата Сообщение от TheCalligrapher Посмотреть сообщение
Только к данной теме это отношения прямого не имеет. Речь не об этом.
а по моему именно об этом
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
13.11.2014, 19:02
Помогаю со студенческими работами здесь

Выделение памяти под шаблонный массив
template <class T> T* arrray <T>::create (unsigned size) { //..... T* templateBuf = new T ; for (unsigned index = 0;...

Выделение памяти под двумерный массив
Доброе время ! Проблема такая : препод задал задачу сортировки массива произвольного типа(char* int* или double*) и сказал, чтобы любой тип...

Выделение памяти под массив объектов
У меня есть класс Shape. Требуется выделить память под массив этих объектов. К примеру: *Shape **shapes; *shapes = new Shape; После...

Динамическое выделение памяти под массив
Я хочу функцию использовать пару раз, количество команд будет уменьшаться, и "n" надо менять. Как написать не знаю. 12 или 13...

Выделение памяти под массив структур
Возникла проблема в том что не могу никак эфективно реализовать выделение памяти под массив структур, более того: единожды выделив память я...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути
Programma_Boinc 01.01.2026
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути Сочетание глобально распределённой вычислительной мощности и инновационных. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru