Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

как узнать количество элементов в массива типа char * c++

дмитрий шипилов Ученик (208), закрыт 5 лет назад
Есть динамический массив типа - char *
Нужно узнать его длину (кол-во элементов в массиве)
Лучший ответ
Голова Робота Просветленный (36328) 5 лет назад
Количество элементов динамического массива узнать нельзя. В предыдущем ответе функция strlen - длина строки - это число элементов массива до нулевого элемента (символа с кодом ноль). Если массив не заполнен, strlen может вернуть любое значение. Если требуется знать число элементов динамического массива, это значение надо хранить и передавать отдельно.

В C++ для строк есть класс string, для других массивов - шаблонные классы vector и array. Если вы пользуетесь обычными массивами там где удобней использовать классы, вы пишете на Си, а не на C++.
Алекс НикПросветленный (27521) 5 лет назад
У тебя хороший и исчерпывающий ответ, если автор вопроса учится и сдаёт экзамен по программированию.

Мой ответ, если он закончил университет и уже пишет программы на работе. И возник вопрос.
Остальные ответы
Алекс Ник Просветленный (27521) 5 лет назад
внутри функции main есть подфункции выделяющие память,

когда внутри C++ запрашивается память, там увеличивается счётчик выданной памяти. Наверное есть и глобальная переменная которая указывает сколько выдано памяти.

ты можешь остановить процесс компиляции на уровне ассемблера и посмотреть, там уже подставлены все эти функции выделения памяти.

в любом С есть три стадии компиляции: подстановка макро определений (процессора), Ассемблирование, построение объектного модуля. Линкование с библиотеками.
Голова РоботаПросветленный (36328) 5 лет назад
> Наверное есть и глобальная переменная которая указывает сколько выдано памяти

Допустим, есть информация, сколько всего памяти выделено. Как это поможет узнать размер динамического массива?
Алекс Ник Просветленный (27521) если он один. еще как поможет может быть ошибка ищется, не обязательно ведь школьный экзамен. очень мало информации. вообразить можно много чего.
Похожие вопросы