Голова Робота
Просветленный
(36328)
5 лет назад
Количество элементов динамического массива узнать нельзя. В предыдущем ответе функция strlen - длина строки - это число элементов массива до нулевого элемента (символа с кодом ноль). Если массив не заполнен, strlen может вернуть любое значение. Если требуется знать число элементов динамического массива, это значение надо хранить и передавать отдельно.
В C++ для строк есть класс string, для других массивов - шаблонные классы vector и array. Если вы пользуетесь обычными массивами там где удобней использовать классы, вы пишете на Си, а не на C++.
Алекс НикПросветленный (27521)
5 лет назад
У тебя хороший и исчерпывающий ответ, если автор вопроса учится и сдаёт экзамен по программированию.
Мой ответ, если он закончил университет и уже пишет программы на работе. И возник вопрос.
Алекс Ник
Просветленный
(27521)
5 лет назад
внутри функции main есть подфункции выделяющие память,
когда внутри C++ запрашивается память, там увеличивается счётчик выданной памяти. Наверное есть и глобальная переменная которая указывает сколько выдано памяти.
ты можешь остановить процесс компиляции на уровне ассемблера и посмотреть, там уже подставлены все эти функции выделения памяти.
в любом С есть три стадии компиляции: подстановка макро определений (процессора), Ассемблирование, построение объектного модуля. Линкование с библиотеками.
Голова РоботаПросветленный (36328)
5 лет назад
> Наверное есть и глобальная переменная которая указывает сколько выдано памяти
Допустим, есть информация, сколько всего памяти выделено. Как это поможет узнать размер динамического массива?
Нужно узнать его длину (кол-во элементов в массиве)