Top.Mail.Ru
Ответы
Аватар пользователя
7лет
Изменено
Аватар пользователя
Аватар пользователя
Аватар пользователя
Программирование
+2

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

Есть динамический массив типа - char *
Нужно узнать его длину (кол-во элементов в массиве)

По дате
По рейтингу
Аватар пользователя
Новичок
7лет

Количество элементов динамического массива узнать нельзя. В предыдущем ответе функция strlen - длина строки - это число элементов массива до нулевого элемента (символа с кодом ноль). Если массив не заполнен, strlen может вернуть любое значение. Если требуется знать число элементов динамического массива, это значение надо хранить и передавать отдельно.

В C++ для строк есть класс string, для других массивов - шаблонные классы vector и array. Если вы пользуетесь обычными массивами там где удобней использовать классы, вы пишете на Си, а не на C++.

Аватар пользователя
Высший разум
7лет
Аватар пользователя
Просветленный
7лет

внутри функции main есть подфункции выделяющие память,

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

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

в любом С есть три стадии компиляции: подстановка макро определений (процессора), Ассемблирование, построение объектного модуля. Линкование с библиотеками.