¿Cómo obtener la longitud real y total de char * (matriz de caracteres)?
Parachar []
, Puedo fácilmente obtener su longitud por:
char a[] = "aaaaa";
int length = sizeof(a)/sizeof(char); // length=6
Sin embargo, no puedo hacer esto para obtener la longitud de unchar *
por:
char *a = new char[10];
int length = sizeof(a)/sizeof(char);
porque sé,a
Aquí hay un puntero, tal quelength
aqui siempre sera4
(o algo distinto en diferentes sistemas).
Mi pregunta es que ¿cómo puedo obtener la longitud de unchar *
¿después?Sé que alguien puede desafiarme que ya sabes que es10
porque acabas de crearlo. Quiero saber esto porque este paso para obtener su longitud puede venir muy lejos de su creación y no quiero regresar mucho para verificar este número. Además, también quiero saber su longitud real.
Para ser más especifico
¿Cómo puedo obtener su reallength=5
?¿Cómo puedo obtener su total?length=10
?para el siguiente ejemplo:
char *a = new char[10];
strcpy(a, "hello");