При a char []
я могу легко получить его длину:
char a[] = "aaaaa";
int length = sizeof(a)/sizeof(char); // length=6
Однако я не могу сделать так, чтобы получить длину char *
:
char *a = new char[10];
int length = sizeof(a)/sizeof(char);
потому что, я знаю, a
здесь указатель, так что length
здесь всегда будет 4
(или что-то другое в разных системах).
Мой вопрос: как я могу получить длину char *
после? Я знаю, что кто-то может бросить мне вызов, что вы уже знаете его 10
, потому что вы только что создали его. Я хочу знать это, потому что этот шаг получения длины может зайти долго от его создания, и я не хочу долго возвращаться, чтобы проверить этот номер. Более того, я также хочу знать его реальную длину.
Более конкретно
- Как я могу получить его реальный
length=5
? - как я могу получить его итоговый
length=10
?
для следующего примера:
char *a = new char[10];
strcpy(a, "hello");