|
17 / 17 / 0
Регистрация: 16.08.2010
Сообщений: 252
|
|||||||||||
Определить реальный размер массива11.06.2011, 00:49. Показов 3982. Ответов 7
Метки нет (Все метки)
У меня есть структура
Далее я создаю массив данной структуры:
Теперь такой вопрос, sizeof(massiv) выведет мне реальный размер массива, включая размер всех строк и веторов, илиже она посчитает размер интов и чаров, а у стрингов и векторов только размер указателей?
0
|
|||||||||||
| 11.06.2011, 00:49 | |
|
Ответы с готовыми решениями:
7
Определить размер массива по указателю Как определить размер массива объявленного в другом модуле? |
|
594 / 532 / 76
Регистрация: 22.03.2011
Сообщений: 1,585
|
|
| 11.06.2011, 01:00 | |
|
неужели так сложно взять и проверить????
sizeof(massiv) будет = 4 (размер указателя) вам нужен sizeof(massiv[0]); или sizeof(vvv); я тут проверил немного, всегда выводится постоянный размер (что в принципе логично) = сумме всех данных sizeof(int +char*100 + std::string +...) всякие штуки std::string или std::vector<int> содержат в себе уже набор данных, этот набор будет иметь одинаковый размер! а расширение там проиходит же по указателям (типа push_back()), а размер указателя при этом не изменится!
1
|
|
|
17 / 17 / 0
Регистрация: 16.08.2010
Сообщений: 252
|
|
| 11.06.2011, 01:08 [ТС] | |
|
Проверить не сложно, просто долго, легче спросить здесь у знатаков
![]() Тогда другой вопрос, есть ли может какая-та функция или способ автоматизированного вычисления размера массива с такой..., или даже сложнее, структурой? Просто в моем случае всё перебирать не вариант...
0
|
|
|
594 / 532 / 76
Регистрация: 22.03.2011
Сообщений: 1,585
|
|
| 11.06.2011, 01:19 | |
|
ну размер одного элемента массива таких структур, как я уже написал, будет постоянный сколько там чего не изменяй, ну а если вам нужны размеры отдельных членов структуры то придется уж их доставать методами типа .size() .length() и тп
0
|
|
|
17 / 17 / 0
Регистрация: 16.08.2010
Сообщений: 252
|
|
| 11.06.2011, 01:23 [ТС] | |
|
Размер stl элементов, таких как вектор и стринг вычисляется функцией size(), у других элементов иначе... при этом там тоже надо считать размер структур.
У меня очень сложная структура массива.... раза в 3 сложнее приведенной мной и элементов очень много. Если вычислять размер каждого элемента и суммировать - выйдет очень большой код анализирующий саму структуру массива и я сомневаюсь что у меня получится сделать это без ошибок...там вектора доходят до сотен тысяч стрингов... Я знаю что если вызвать delete[] massiv; то для каждого элемента поочередно вызовется деструктор и массив будет последовательно удален, независимо от его сложности. Может быть есть какие-то способы и вычисления размера также, автоматизированно?
0
|
|
|
594 / 532 / 76
Регистрация: 22.03.2011
Сообщений: 1,585
|
||
| 11.06.2011, 01:37 | ||
|
получается что такая "сложность" это нормально!? если какие-то элементы -структуры/классы - определи для них методы которые покажут их размер, может это поможет не запутатся. а вообще для чего это?
1
|
||
|
17 / 17 / 0
Регистрация: 16.08.2010
Сообщений: 252
|
|
| 11.06.2011, 01:43 [ТС] | |
|
Это для отслеживания занимаемой памяти приложением из самого приложения... Видимо придется писать функцию, спасибо.
0
|
|
|
594 / 532 / 76
Регистрация: 22.03.2011
Сообщений: 1,585
|
|
| 11.06.2011, 01:50 | |
|
понятно, надеюсь у вас выйдет то , что вы хотите сделать.
0
|
|
| 11.06.2011, 01:50 | |
|
Помогаю со студенческими работами здесь
8
Можно ли определить размер динамического двумерного массива, количество строк и столбцов? Ввести размер массива с клавиатуры и передать этот размер в конструктор Функция с применением динамического массива, чтобы размер массива увеличивался по мере необходимости Функция, которая удаляет из целочисленного одномерного массива все, и возвращает новый размер массива Удалить из массива все элементы встречающиеся менее 3-х раз и вывести размер полученного массива и его содержимое. Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Подключение Box2D v3 к SDL3 для Android: физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
|
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования.
Часть библиотеки BedvitCOM
Использованы. . .
|
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога
SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
|
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога
SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
|
|
Влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
|
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога
SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
|
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога
Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip"
Извлеките архив и вы увидите. . .
|
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога
Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д.
Сборка примера
Скачайте. . .
|