Algunas preguntillas

thecrow_94
11 de Febrero del 2005
Haver si alguien me puede resolver estas dudas, gracias:

1ª.- ¿Que significa "%lu"?
2ª.- No se cuando hay q utilizar la funcion malloc en punteros para reservar memoria, ¿Es necesario utilizarla siempre? ¿En q casos hay q utilizarla?
3ª.- ¿Una funcion puede devolver mas de un valor?

chuidiang
11 de Febrero del 2005
Hola:

Si no recuerdo mal, %lu es para long unsigned, es decir. un entero largo sin signo.

Para los punteros quizas te ayude un tutorial de punteros que hay en www.geocities.com/chuidiang . Mas que explicar qué es un puntero, se explica precismante cuando hay que hacer malloc(), free(), etc.

Una función solo puede devolver un valor. Una opción es que devuelva una estructura de datos o un array, con lo que podrias devolver todos los valores que quieras. Otra opcion es pasarle por los parametros punteros a variables, de forma que la funcion, dentro de ella, puede rellenar el contenido de esos punteros.

Se bueno.

Alejandro_
11 de Febrero del 2005
Con respecto a si una función puede devolver más de un valor, en el último estándar del C++ se incorporó la clase template <tuple>, que permite a una función devolver hasta 10 valores distintos (aún tipos de datos distintos).

Un ejemplo de uso puede ser:

#include <tuple>
tuple <int, double, string> tupla(333, 5.5, "hola" );

Para conocer los detalles de este nuevo tipo de dato estándar puedes ver:

http://www.boost.org/libs/tuple/doc/tuple_users_guide.html

Aunque tu compilador no incluya la biblioteca <tuple>, puedes descargarla desde el sitio de Boost.

Alejandro