char* username
- указатель на начало массива символов (в с).вычисление размера массива в c, учитывая только указатель
Как вычислить размер массива, есть ли функция, которая может это сделать?
char* username
- указатель на начало массива символов (в с).вычисление размера массива в c, учитывая только указатель
Как вычислить размер массива, есть ли функция, которая может это сделать?
использование strlen (имя пользователя). Но массив должен заканчиваться на '\ 0'. В противном случае вы не сможете этого сделать.
Это:) Я буду использовать это. – spatara
Вы не можете этого сделать. Если это массив, который вы выделили, вы должны иметь размер его для начала. Для того, что знает C и компилятор, это всего лишь указатель.
Если это строка с нулевым символом, используйте strlen для подсчета непустых символов, тогда длина массива не менее длины + 1 символ.
Если у вас есть указатель на массив, вы можете использовать sizeof (указатель), чтобы получить размер, выделенный ему диспетчером памяти.
Это не так, как работает 'sizeof'. 'sizeof' возвращает размер самого указателя. –
Вы правы, однако вы можете использовать sizeof для массивов. Как char my_string [500]; а затем sizeof (my_string) вернет 500. Но поскольку контур OP находится внутри функции, это не сработает. – Spidey
если null завершено, используйте 'strlen' – perreal
Как сказал perreal, если NUL завершен, используйте strlen. Если он назначен с помощью malloc, вы можете использовать нестандартный способ просмотра внутренних данных системы malloc. В противном случае вам, вероятно, не повезло. –