Hola
toda la vida he visto que aconsejan no usar strings como valor de retorno de funciones (esto es en C, nunca lo he visto en C++, aunque creo que recuerdo haber leido que este problema de no poder retornar cadenas por funciones se arreglo en C++), y siempre he seguido este consejo retornando siempre las cadenas por buffers pasados por parametro (mal hecho, al no haber investigado el porque se recomienda esto).
Y viendo el siguiente codigo:
http://foro.elhacker.net/programacion_cc/manejo_de_procesos_en_c-t82074.0.html
justamente en la linea que dice
printf("ERROR - %s",MensajeError(GetLastError()));
se ve claramente que la funcion MensajeError() retorna una cadena (en este caso el nombre del error).
y si uno se pone a convertir el codigo a ensamblador (o ver directamente el codigo generado por un compilador, en este caso el famoso GCC) se ve que si se puede retornar una cadena sin generar errores.
la pregunta es la siguiente:
¿Porque no se recomienda retornar cadenas en C?
Saludos y gracias...