Lo que tienes que hacer es utilizar punteros y referencias como muestra el siguiente código:
void MiFuncion(int *parametro1,char *parametro2)
{
(*parametro1)=1;
(*parametro2)='a';
}
void main()
{
int variable1;
char variable2;
MiFuncion(&variable1,&variable2);
}
Explico un poco lo anterior:
1. En el programa principal (funcion MAIN) se declaran las variables que tu quieres que recibir desde la función susodicha (en este caso MiFuncion).
2. Llamas a la funcion en cuestión enviando "la referencia" donde se almacenarán los valores a ser devueltos, o en diferentes palabras, enviando "la dirección de memoria" de dichas variables.
3. La función MiFuncion utiliza unos punteros para saber donde almacenará la información a ser devuelta.
No se si me explico bien. La utilización de puntores y referencias es, a mi huimilde parecer, uno de los conocimientos clave para poder programar y entender como funciona el lenguaje C.
La solución de nuestro amigo BLAG (al cual no conozco porque soy nuevo en esto... pero saludos
) no funciona en C pero si en C++ (lo cual es una bendición). Esa forma de recibir referencias es muy parecida al VAR de pascal, la verdad un buen trabajo de los diseñadores del C++.
La solución de nuestro amigo JUANK tambien es interesante, eso si, siempre y cuando no tengas muchas funciones de este tipo porque terminarias creando una cantidad impresionante de tipos... no se... en una de esas es practico... asi que yo mismo me pondre a ver que tal.
Espero te ayude en algo,
Bufa