При 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");