3 / 3 / 0
Регистрация: 08.03.2015
Сообщений: 18
|
|
1 | |
Как найти количество элементов массива, зная лишь адрес первого элемента и тип?03.05.2015, 13:53. Показов 1879. Ответов 10
Метки нет Все метки)
(
Где-то в коде объявлен массив, кол-во элементов неизвестно, имеется ссылочная переменная на этот массив и все, назовем ее (А), как узнать кол-во элементов в массиве?
0
|
03.05.2015, 13:53 | |
Ответы с готовыми решениями:
10
Найти количество элементов массива после первого элемента, равного 15
|
7803 / 6567 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
|
|
03.05.2015, 13:56 | 2 |
Никак.
0
|
3 / 3 / 0
Регистрация: 08.03.2015
Сообщений: 18
|
|
03.05.2015, 16:17 [ТС] | 4 |
Попробую задать иначе: есть ссылочная переменная содержащая адрес первого элемента массива (объявленного статически), тип данных массива соответственно можно узнать, ведь у нас есть ссылка на него, необходимо найти количество элементов массива
0
|
18 / 18 / 10
Регистрация: 20.04.2015
Сообщений: 108
|
|
03.05.2015, 16:22 | 5 |
если массив char то последним элементом должен быть '\0' (если он не двумерный)
0
|
![]() ![]() 8972 / 4318 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
|
03.05.2015, 16:27 | 6 |
![]() Решение
никак.
если бы у вас была ссылка на сам массив - бес проблем. но у вас только адрес первого элемента. указатели такую информацию не хранят. если бы данные были бы расположены в динамической памяти, тогда можно было бы узнать размер используя нестандартные расширения компиляторов. но у вас обычный статический массив. так что - никак.
1
|
941 / 869 / 355
Регистрация: 10.10.2012
Сообщений: 2,706
|
|||||||||||
03.05.2015, 16:30 | 7 | ||||||||||
![]() Решение
Если имеется ввиду, имя массива, то варианты такие:
1
|
![]() ![]() 8972 / 4318 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
|
||||||
03.05.2015, 16:32 | 8 | |||||
никому он ничего не должен.
это сильно зависит от способа использования. например, техника boost::optional<T> под капотом использует массив для аллокации объекта.
1
|
3 / 3 / 0
Регистрация: 08.03.2015
Сообщений: 18
|
|
04.05.2015, 00:59 [ТС] | 10 |
массив типа GLuint (из библиотеки GLUT) необходимо передать в функцию? и в функции определить кол-во его элементов, лично у меня(раздел для новичков) получается передать в функцию только ссылку на массив, поэтому такой вопрос), я понимаю то что можно передать независимо в функцию кол-во элементов sizeof(mas)/sizeof(GLuint) и много чего еще, НО меня интересуют именно возможности при передачи ссылки на массив.
Добавлено через 5 минут void XXX(GLuint* mas) Добавлено через 4 минуты Если я туплю то заранее прошу меня извинить, можно конечно сделать так void XXX(sizeof(mas)/sizeof(GLuint)), но это очевидно, а меня интересует все таки void XXX(GLuint* mas)
0
|
941 / 869 / 355
Регистрация: 10.10.2012
Сообщений: 2,706
|
||||||
04.05.2015, 01:07 | 11 | |||||
Не путай понятия.Передача ссылки на массив это вот такое:
Добавлено через 3 минуты Сделай функцию шаблонной (пример в 7 посте), передавай туда имя массива, размер там автоматически определяется (если только массив статически создан). Добавлено через 2 минуты Насчёт передачи просто указателя, уже написали выше.
1
|
04.05.2015, 01:07 | |
Помогаю со студенческими работами здесь
11
Найти произведение и количество элементов массива, расположенных до первого отрицательного элемента Найти количество элементов массива, расположенных после первого нулевого элемента Найти произведение и количество элементов массива, расположенных до первого отрицательного элемента
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
![]() |
Новые блоги и статьи
![]() |
||||
Лучшие практики оптимизации Docker Image
Mr. Docker 13.03.2025
Размер Docker-образа влияет на множество аспектов работы с контейнерами. Чем больше образ, тем дольше его загрузка в реестр и выгрузка из него. Для команд разработки, работающих с CI/ CD пайплайнами,. . .
|
Вопросы на собеседовании по Docker
Mr. Docker 13.03.2025
Ты сидишь напротив технического специалиста, и вдруг звучит вопрос про Docker Swarm или многоэтапные сборки. Пот на лбу? Не переживай, после этой статьи ты будешь готов ко всему! Эта статья будет. . .
|
Поиск текста в сносках : замена дефиса на тире или тире на дефис...
РоΜа 13.03.2025
Нужно было найти текст в сносках и заменить. Почему-то метод селекшн не сработал. . . пришлось гуглить. найденный на форумвба код пришлось править. Смысл - заменяет в сносках дефисы и тире на нужные. . . .
|
Real PATH definitions in bash scripts
jigi33 13.03.2025
Как поймать путь и путь к директории относительно запускаемого файла в BASH
1. поймать путь через вывод $(pwd)
2. более правильно - на основе realpath (см. скриншот)
|
Django или Flask: что выбрать для веб-разработки на Python
py-thonny 13.03.2025
Django – это высокоуровневый фреймворк, который придерживается философии "всё включено". Он предоставляет разработчику готовые решения для большинства типичных задач веб-разработки: от аутентификации. . .
|
Непрерывное развертывание в Java с Kubernetes
Javaican 13.03.2025
Чем так привлекателен Kubernetes для развертывания Java-приложений? Этот оркестратор контейнеров позволяет автоматизировать развертывание, масштабирование и управление контейнеризированными. . .
|
Предотвращение XSS, CSRF и SQL-инъекций в JavaScript
run.dev 13.03.2025
JavaScript занимает первые позиции среди языков веб-разработки, но его распространенность делает его привлекательной целью для злоумышленников. Межсайтовый скриптинг (XSS), межсайтовая подделка. . .
|
PHP 8: JIT-компиляция и улучшение производительности
Jason-Webb 13.03.2025
PHP никогда не славился своей скоростью. Многие сталкивались с проблемами производительности при работе со сложными вычислениями или обработкой больших объемов данных. Традиционная модель выполнения. . .
|
Сериализация данных с Apache Avro в Kafka
Javaican 12.03.2025
Apache Kafka стала одним из ключевых решений для работы с большими потоками данных. Однако с ростом объемов передаваемых данных возникает проблема: как эффективно сериализовать и десериализовать. . .
|
Создание потребителей Kafka с помощью Reactor Kafka
Javaican 12.03.2025
Reactor Kafka — это библиотека, объединяющая Apache Kafka с реактивным программированием на базе Project Reactor. Такое сочетание позволяет строить неблокирующие, асинхронные приложения с контролем. . .
|