[C con Clase] acerca del rendimiento de strlen

miguel rabindranath84 en hotmail.com
Mie Mar 14 06:00:47 CET 2007


buenas, resulta que estuve trabajando en java en vacaciones (eso se notó bastante cuando volví a abrir este correo esta tarde y me encontré con la pequeña cantidad de 637 mensajes de conclase), y esto hizo que olvidara algunas cosas de c, por ejemplo la función strlen, pero el caso es que en algún momento tuve que crear una cadena a partir de otra, para lo que necesitaba la longitud de esta cadena, pues al no recordar esta función decidí hacer lo siguiente:

char []pCadena="hola mundo"; //mi antigua cadena
char *nCadena=new char[sizeof(pCadena)/sizeof(char)];  //mi nueva cadena

pues mi duda es puntualmente:

qué es más optimo: hacer un strlen() o usar el sizeof?

porque entiendo que el strlen hace un ciclo de recorrido (eso lo aprendí leyendo una crítica que le hacían a c++, donde decían que otros lenguajes usaban un espacio de la cadena al principio para guardar información acerca de la misma, como su longitud, y así no tener que hacer un recorrido para conseguirla), pero no sé como es que funciona sizeof (aunque creo que trabaja con el preprocesador, pero no lo entiendo muy bien).

agradezco cualquier ayuda y aclaración al respecto
hasta luego


Más información sobre la lista de distribución Cconclase